//
//  SolverUnitTest.h
//  pbsam
//
//  Created by Felberg, Lisa on 6/8/16.
//  Copyright © 2016 Felberg, Lisa. All rights reserved.
//

#ifndef SolverUnitTest_h
#define SolverUnitTest_h

#include "Solver.h"

/*
 Class for unit testing solver matrices
 */
class SolverUTest : public ::testing::Test
{
  protected :  
  virtual void SetUp()   {}
  virtual void TearDown() {}
  
  vector<double> unifSphX = {0,-0.18316353,-1.13466223,-0.774928921,0.495848189,1.61237984,1.8612696,1.14746377,-0.156480449,-1.4940578,-2.37498141,-2.52333083,-1.91787625,-0.750787101,0.658708071,1.96181151,2.86388476,3.18022946,2.85943835,1.97715718,0.707641383,-0.717540469,-2.05438631,-3.08714395,-3.65928912,-3.69180533,-3.18812857,-2.22704831,-0.946216319,0.480328887,1.86701765,3.04064737,3.86059092,4.23339289,4.1207209,3.54049941,2.56180284,1.2946653,-0.123652629,-1.54421956,-2.822101,-3.8305985,-4.47281266,-4.68965428,-4.46383607,-3.81978192,-2.81975739,-1.55682794,-0.145473043,1.28918468,2.62253561,3.74106928,4.55155167,4.98812757,5.01689251,4.63770724,3.88325614,2.81556221,1.52035094,0.0997941696,-1.33574493,-2.67630499,-3.82060754,-4.68343155,-5.20158165,-5.33807398,-5.08430677,-4.46013402,-3.51191024,-2.30871056,-0.937048064,0.505500569,1.91729125,3.19973568,4.26406532,5.03728977,5.46697055,5.5245207,5.20684529,4.53625142,3.55867,2.34033992,0.963200123,-0.480687263,-1.8953051,-3.18703271,-4.2707691,-5.07543802,-5.54853062,-5.65940731,-5.40116254,-4.79094869,-3.86875327,-2.69472006,-1.34519484,0.092245509,1.52446088,2.85875137,4.00881644,4.90029385,5.47553031,5.69728378,5.55112444,5.04638203,4.21557759,3.11237213,1.80815693,0.387495894,-1.05729682,-2.43210454,-3.64710621,-4.62263705,-5.29443499,-5.61793048,-5.5712938,-5.15702896,-4.40199262,-3.35581557,-2.08780618,-0.682514561,0.765773637,2.15926969,3.40324144,4.41247033,5.11717183,5.46796997,5.43956813,5.03283532,4.27512568,3.21876275,1.93774302,0.522837764,-0.924611197,-2.29980349,-3.50202297,-4.44208418,-5.04914034,-5.27633281,-5.10482262,-4.54584131,-3.6405272,-2.45746657,-1.08802792,0.360249436,1.7717868,3.03204879,4.03689912,4.70148712,4.96791259,4.81096574,4.24134957,3.30596081,2.0850244,0.686132045,-0.764488659,-2.13287489,-3.28955168,-4.12203328,-4.54643674,-4.51701545,-4.03250428,-3.13837049,-1.92438099,-0.517314625,0.930860805,2.25850111,3.31213105,3.96482814,4.13304802,3.78968626,2.97130982,1.77790766,0.364214552,-1.07737341,-2.3411131,-3.23703691,-3.62128906,-3.42317106,-2.66395736,-1.4627984,-0.0261507747,1.38073599,2.47872499,3.03080825,2.89998095,2.09626212,0.79824792,-0.664484132,-1.87667667,-2.44851428,-2.154569,-1.06208228,0.410513807,1.57547761,1.75422007,0.73935628,-0.742758359,-1.09609283,0.385479294,0};
  vector<double> unifSphY = {0,0.785006186,0.0744670248,-1.15288574,-1.52114697,-0.763881213,0.579590343,1.75897105,2.233832,1.8383576,0.749628614,-0.647634264,-1.91988665,-2.71506072,-2.84003488,-2.2822982,-1.18620616,0.199573568,1.58603467,2.70451183,3.35378235,3.42815727,2.92550409,1.93752593,0.626810511,-0.803817139,-2.1440806,-3.20634287,-3.84936662,-3.99352466,-3.62665729,-2.801025,-1.62278504,-0.236073429,1.19590734,2.51038337,3.56291861,4.24199991,4.47910333,4.25363542,3.59271241,2.5662417,1.27816648,-0.144993831,-1.56703617,-2.85511677,-3.89176327,-4.58486683,-4.87492104,-4.73906714,-4.1918057,-3.28252018,-2.09020624,-0.715996637,0.725794045,2.11731321,3.34670855,4.31682465,4.95243015,5.20549467,5.05820699,4.52360911,3.64390144,2.48663972,1.13918456,-0.29812863,-1.7195631,-3.02173321,-4.11098341,-4.90989015,-5.36246313,-5.43772744,-5.13148925,-4.46621685,-3.4890971,-2.26844665,-0.888760165,0.555240941,1.9651412,3.24550055,4.31021902,5.08818584,5.527858,5.60048992,5.30182814,4.65218633,3.69492016,2.49342289,1.12685335,-0.315115138,-1.73817911,-3.04954182,-4.16391048,-5.00897499,-5.53002517,-5.69342038,-5.4886991,-4.92920173,-4.05117351,-2.91140855,-1.58358689,-0.15353712,1.28627624,2.64269317,3.82785194,4.76485753,5.39276508,5.67055988,5.57987617,5.12627456,4.33898663,3.26913095,1.98650119,0.575118159,-0.872181462,-2.25978215,-3.49556985,-4.49705131,-5.19691172,-5.5476386,-5.52489289,-5.12938323,-4.3870912,-3.34780036,-2.08199204,-0.676281009,0.772334094,2.1630433,3.3981923,4.39017496,5.06777246,5.3814811,5.3074251,4.84953363,4.03977099,2.93633806,1.61990432,0.188074012,-1.25157256,-2.58940134,-3.72205526,-4.56057994,-5.03771385,-5.11374195,-4.7803886,-4.06234755,-3.01620844,-1.72673206,-0.300636982,1.1417253,2.47622866,3.58561579,4.3700561,4.7566875,4.70722666,4.22282838,3.34555379,2.15606222,0.767459639,-0.684403414,-2.05351833,-3.19816936,-3.99593284,-4.35770678,-4.23918139,-3.64824723,-2.64709916,-1.34823265,0.0958725569,1.50886581,2.7111387,3.5428792,3.8868659,3.6878872,2.96559236,1.81793299,0.413194933,-1.03003749,-2.27386406,-3.09981181,-3.35005237,-2.96402796,-2.00240143,-0.650478529,0.804798067,2.02617363,2.70148778,2.63109766,1.80685177,0.455255473,-0.984682596,-1.9714139,-2.05964334,-1.14809398,0.325569054,1.41883961,1.17386983,-0.302628838,-0.707947248,0};
  vector<double> unifSphZ = {-5.7,-5.64271357,-5.58542714,-5.5281407,-5.47085427,-5.41356784,-5.35628141,-5.29899497,-5.24170854,-5.18442211,-5.12713568,-5.06984925,-5.01256281,-4.95527638,-4.89798995,-4.84070352,-4.78341709,-4.72613065,-4.66884422,-4.61155779,-4.55427136,-4.49698492,-4.43969849,-4.38241206,-4.32512563,-4.2678392,-4.21055276,-4.15326633,-4.0959799,-4.03869347,-3.98140704,-3.9241206,-3.86683417,-3.80954774,-3.75226131,-3.69497487,-3.63768844,-3.58040201,-3.52311558,-3.46582915,-3.40854271,-3.35125628,-3.29396985,-3.23668342,-3.17939698,-3.12211055,-3.06482412,-3.00753769,-2.95025126,-2.89296482,-2.83567839,-2.77839196,-2.72110553,-2.6638191,-2.60653266,-2.54924623,-2.4919598,-2.43467337,-2.37738693,-2.3201005,-2.26281407,-2.20552764,-2.14824121,-2.09095477,-2.03366834,-1.97638191,-1.91909548,-1.86180905,-1.80452261,-1.74723618,-1.68994975,-1.63266332,-1.57537688,-1.51809045,-1.46080402,-1.40351759,-1.34623116,-1.28894472,-1.23165829,-1.17437186,-1.11708543,-1.05979899,-1.00251256,-0.945226131,-0.887939698,-0.830653266,-0.773366834,-0.716080402,-0.65879397,-0.601507538,-0.544221106,-0.486934673,-0.429648241,-0.372361809,-0.315075377,-0.257788945,-0.200502513,-0.14321608,-0.0859296482,-0.0286432161,0.0286432161,0.0859296482,0.14321608,0.200502513,0.257788945,0.315075377,0.372361809,0.429648241,0.486934673,0.544221106,0.601507538,0.65879397,0.716080402,0.773366834,0.830653266,0.887939698,0.945226131,1.00251256,1.05979899,1.11708543,1.17437186,1.23165829,1.28894472,1.34623116,1.40351759,1.46080402,1.51809045,1.57537688,1.63266332,1.68994975,1.74723618,1.80452261,1.86180905,1.91909548,1.97638191,2.03366834,2.09095477,2.14824121,2.20552764,2.26281407,2.3201005,2.37738693,2.43467337,2.4919598,2.54924623,2.60653266,2.6638191,2.72110553,2.77839196,2.83567839,2.89296482,2.95025126,3.00753769,3.06482412,3.12211055,3.17939698,3.23668342,3.29396985,3.35125628,3.40854271,3.46582915,3.52311558,3.58040201,3.63768844,3.69497487,3.75226131,3.80954774,3.86683417,3.9241206,3.98140704,4.03869347,4.0959799,4.15326633,4.21055276,4.2678392,4.32512563,4.38241206,4.43969849,4.49698492,4.55427136,4.61155779,4.66884422,4.72613065,4.78341709,4.84070352,4.89798995,4.95527638,5.01256281,5.06984925,5.12713568,5.18442211,5.24170854,5.29899497,5.35628141,5.41356784,5.47085427,5.5281407,5.58542714,5.64271357,5.7};
  
  vector<vector<double> > itermIntRR = {{11.464057403,0.974676945,3.638549649,0.448831635,0.448831635,-0.337299594,1.930280233,-0.274204228,0.318592464,0.157528290,2.435515624,-0.584220034,0.441031066,-0.584220034,0.441031066,0.217187257,-0.209436883,0.968215392,-0.034005554,-0.034005554,0.039303796,0.037128691,-0.042326323,-0.056051520,1.200367645,-0.118797190,0.128093023,0.023335661,-0.016955001,-0.025252214,0.033688446,1.749871364,0.504788022,-0.384525716,-0.193869711,0.504788022,-0.384525716,-0.193869711,0.188606058,0.259167377,0.061877242,0.012900002,0.661797515,0.087885961,-0.088442601,0.087885961,-0.088442601,-0.072362201,0.080352177,0.107028969,0.094349088,-0.053188190,-0.114830896,0.738667492,-0.057664475,-0.057664475,0.030486209,-0.001994071,0.008164271,0.009102416,0.045188997,-0.036134936,-0.019193844,-0.073755932,0.855762629,0.429815961,-0.328023543,-0.143660119,0.100393330,0.183994505,-0.009881601,0.054928445,-0.153754605,0.005696977,0.037864411,1.224210419,-0.268334802,0.209289847,0.111829594,-0.111055225,-0.268334802,0.209289847,0.111829594,-0.111055225,-0.151834188,-0.051882466,0.005738161,0.142109890,0.092610631,0.026202291,0.074355861,0.607168191,-0.156767767,0.142073808,0.100900663,-0.156767767,0.142073808,0.100900663,-0.108653032,-0.145735087,-0.107303041,0.054419531,0.150989032,0.182097985,0.080175133,0.013531773,-0.115665197,0.487021560,0.080658927,-0.036454866,0.080658927,-0.036454866,0.013904171,-0.025098862,-0.030554311,-0.087269195,0.066503022,0.048087119,0.143165563,0.078789014,-0.062310007,-0.056189345,-0.157001826,0.549119183,-0.010012622,-0.010012622,0.011986163,0.011674960,-0.013376698,-0.017694827,-0.018175862,0.010985705,0.019638519,0.030453132,0.014660125,-0.003534141,-0.016581984,-0.034591896,-0.028288791,0.692259901},{3.747864920,-1.531635200,1.051014425,0.809145249,0.809145249,-0.088222039,0.529000213,-0.297410822,-0.820009175,-0.252927225,0.512813622,-0.152805055,0.175105025,-0.152805055,0.175105025,-0.214520952,0.025047127,0.312555767,-0.274917549,-0.274917549,-0.012858331,0.199078827,0.073962783,-0.127478944,0.431272608,-0.345591825,-0.296111605,0.082916302,-0.517668681,-0.232537735,0.107294557,0.634823991,-0.185953371,-0.006498175,-0.004944255,-0.185953371,-0.006498175,-0.004944255,0.032060097,-0.108975268,0.011887261,0.065295134,0.067245687,-0.028752103,-0.094654236,-0.028752103,-0.094654236,-0.164574609,0.132449913,0.169242125,-0.128933344,-0.011799886,-0.036522422,0.288436388,-0.045742021,-0.045742021,-0.135915694,-0.031378659,0.080475568,-0.051469970,0.142716559,0.120018977,-0.009065997,-0.121103626,0.203600733,-0.295137192,-0.190535145,-0.045252098,0.074676850,0.096118876,-0.064706958,-0.969832727,-0.004525545,-0.106382073,-0.076397045,0.549937699,0.099848283,-0.201278741,0.042948436,0.047818615,0.099848283,-0.201278741,0.042948436,0.047818615,-0.162601023,0.063576736,0.189981232,0.051076202,-0.093170985,0.102794027,-0.113134721,0.128782032,-0.013811756,0.167363294,0.068944315,-0.013811756,0.167363294,0.068944315,-0.138557480,-0.074663527,-0.017726428,-0.077392786,0.026344095,-0.183221420,0.022190352,0.152242462,0.023710267,0.156183637,-0.359599126,0.101604889,-0.359599126,0.101604889,-0.078621678,0.046684569,-0.042327757,-0.143291743,-0.024250758,0.095451334,0.149671498,-0.217857360,0.036627669,-0.048299054,-0.042959937,0.375952135,0.115588739,0.115588739,-0.037581654,-0.034186754,-0.075466966,-0.139411611,-0.128317596,0.063399930,0.058166671,-0.193332491,0.088472539,0.052636603,0.117794262,0.160823282,-0.056144124,0.309687240},{4.188790205,-2.332262690,1.374685341,-0.779224566,-0.779224566,0.218904636,0.784394909,-0.032367092,-1.096463350,0.118885102,1.180777145,0.379153951,-0.312608822,0.379153951,-0.312608822,-0.355872800,0.226124646,0.323753577,0.162185361,0.162185361,0.001232827,-0.323656829,-0.051102387,0.093122329,0.508368165,-0.272597123,0.377535995,0.071652118,-1.153069055,-0.120925337,-0.050121734,0.662036711,-0.075443899,0.355857894,-0.149912209,-0.075443899,0.355857894,-0.149912209,-0.422110466,-0.167966246,0.092900880,0.088227913,0.393479514,0.002756685,0.044706890,0.002756685,0.044706890,0.120220409,-0.066142689,-0.133192150,-0.236803807,0.000818317,0.114684163,0.221901911,-0.362332983,-0.362332983,0.092253237,0.092849465,0.100469025,0.011321982,-0.241639120,-0.053229735,-0.029193695,0.065664379,0.351127758,0.684963309,-0.681914707,-0.211342309,0.073830884,-0.038815518,0.038967225,-0.627868630,0.237088592,0.111995105,-0.032032572,0.419037554,0.366279896,-0.325767818,0.084620240,0.187809291,0.366279896,-0.325767818,0.084620240,0.187809291,0.072003458,0.024691172,0.006210064,-0.223555814,-0.087661907,-0.086459293,-0.111676800,0.186324387,-0.014349828,-0.088043116,0.053528743,-0.014349828,-0.088043116,0.053528743,0.070114755,0.155138999,-0.127618345,0.104392999,-0.266727187,-0.121075500,0.087340185,-0.200313732,0.116371793,0.357472365,0.244079122,-0.142336951,0.244079122,-0.142336951,0.017294614,0.013132064,0.041404818,0.077695140,0.065492470,-0.114459737,-0.089867185,-0.129174901,-0.071838484,0.117523438,0.089195930,0.106599486,0.124237201,0.124237201,-0.000246308,-0.218068059,-0.036317111,0.082767383,0.031491144,-0.054336822,0.052525110,0.073639400,-0.283360050,0.073832803,-0.023451787,-0.055086981,0.048395201,0.568424308},{4.188790205,0.522148363,0.827498284,-1.638540050,-1.638540050,-0.103167705,0.863417124,-0.853147677,0.227083914,0.398967928,0.736769603,-0.178691707,-0.485323059,-0.178691707,-0.485323059,0.108044442,-0.128411926,0.327033969,-0.066095178,-0.066095178,0.032338359,-0.356129325,-0.044490771,-0.126444575,0.599626164,0.030374282,-0.207003562,-0.054785964,0.013209868,0.154589297,0.040659347,0.133334710,0.145458697,-0.193452946,-0.194955200,0.145458697,-0.193452946,-0.194955200,-0.423525477,0.173607440,0.121352645,0.080024324,0.375352623,0.072310768,-0.115587362,0.072310768,-0.115587362,-0.163239245,0.083474545,-0.122356286,0.179104057,-0.016150674,-0.164466166,0.336875242,0.154339031,0.154339031,-0.173192794,0.026354265,-0.024278586,0.119008534,-0.278510039,0.088744133,0.021148218,-0.008665707,0.499889444,0.277604524,-0.137183093,-0.143034645,-0.557478250,0.142316759,0.020728176,-0.007980180,0.411015710,-0.206665217,0.009792568,0.509226292,-0.219147379,-0.068254282,0.102254580,0.040701877,-0.219147379,-0.068254282,0.102254580,0.040701877,0.022873212,-0.040594358,-0.016462284,-0.021070558,0.005566059,0.018831704,-0.018374276,0.035839158,-0.190906127,0.140285213,0.087131490,-0.190906127,0.140285213,0.087131490,-0.084291136,-0.220648336,-0.082624177,-0.192590857,-0.172013241,0.197069572,0.001852724,-0.005560122,0.011463895,0.500965730,-0.458225061,0.093290831,-0.458225061,0.093290831,0.181788539,-0.042413081,0.055805837,-0.010253403,-0.012724358,0.154792266,-0.232958159,-0.043120135,0.184918054,0.019702259,-0.128168988,0.240063881,0.082025680,0.082025680,0.184630697,0.055064021,0.030100240,-0.076435493,0.069222561,-0.121557028,-0.083110862,-0.066234150,-0.525566328,-0.034910262,-0.009815005,-0.003576962,0.028527549,0.686492774}};
  vector<vector<double> > itermIntRI = {{-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.070045468,-0.0,-0.0,0.057261158,-0.0,-0.0,-0.0,-0.0,-0.0,0.082383768,-0.0,-0.096775649,-0.0,-0.0,-0.0,-0.055538655,-0.0,0.066150656,0.034144101,-0.0,-0.0,0.068070558,-0.0,-0.080735850,-0.040981688,-0.0,-0.0,-0.0,-0.055877319,-0.0,-0.0,-0.055877319,-0.0,0.065407915,0.031440970,-0.0,-0.043762100,-0.0,-0.0,-0.0,-0.0,0.085400129,-0.0,-0.101793577,-0.052694634,-0.0,0.071644333,0.081424970,-0.0,-0.0,-0.0,0.065864225,-0.0,-0.078240808,-0.039962773,-0.0,0.054560264,0.061395801,-0.001782985,-0.0,-0.0,-0.124518383,-0.0,0.147185932,0.073694595,-0.0,-0.101244142,-0.112228114,0.007114893,-0.0,-0.0,-0.0,0.008088456,-0.0,-0.0,-0.0,0.008088456,-0.0,-0.009052841,-0.003496506,-0.0,0.005253068,0.004618634,-0.003065182,-0.0,0.000835509,-0.0,-0.0,-0.082909126,-0.0,-0.0,-0.082909126,-0.0,0.098976319,0.051543506,-0.0,-0.069950336,-0.079848748,-0.000254308,-0.0,0.015197156,0.078707539,-0.0,-0.0,-0.0,-0.0,-0.119514808,-0.0,0.142023885,0.072644491,-0.0,-0.099135873,-0.111674655,0.002974123,-0.0,0.019400736,0.108359843,-0.004854352,-0.0,-0.0,-0.0,-0.018182948,-0.0,0.021654856,0.011172476,-0.0,-0.015205944,-0.017239307,0.000209709,-0.0,0.003133751,0.016856335,-0.000234453,-0.004866922},{0.0,0.0,0.0,0.0,0.0,0.0,-0.230649322,0.0,0.0,0.273501154,0.0,0.0,0.0,0.0,0.0,-0.035421957,0.0,-0.049475383,0.0,0.0,0.0,0.335212817,0.0,-0.056700233,-0.044136961,0.0,0.0,-0.023981095,0.0,0.307117385,0.049553572,0.0000,0.0,0.0,0.090747686,0.0,0.0,0.090747686,0.0,-0.000468208,0.013710333,0.0,0.003456526,0.0,0.0,0.0,0.0,-0.073199686,0.0,0.185746226,0.014903363,0.0,-0.148580656,-0.054561049,0.0,0.0,0.0,0.122781949,0.0,0.034450467,0.156403330,0.0,-0.063230125,-0.063009590,-0.016141831,0.0,0.0,0.105174169,0.0,-0.348368191,-0.028250529,0.0,0.244956300,-0.058374768,0.075099412,0.0,0.0,0.0,0.025379965,0.0,0.0,0.0,0.025379965,0.0,0.096482755,0.058530996,0.0,-0.057460306,0.109596974,0.041100194,0.0,-0.062075011,0.0,0.0,0.000324988,0.0,0.0,0.000324988,0.0,-0.184481774,-0.020816322,0.0,0.164200649,0.036928394,0.096402795,0.0,0.046749921,-0.034127864,0.0,0.0,0.0,0.0,0.052623957,0.0,0.017897330,-0.074553952,0.0,0.006563149,0.229629555,0.083147209,0.0,-0.077878818,-0.197226130,-0.042804112,0.0,0.0,0.0,-0.076354338,0.0,-0.046081062,0.108131494,0.0,0.098712988,0.095434024,0.257108930,0.0,0.015940161,-0.043372307,0.195938683,0.056522482},{0.0,0.0,0.0,0.0,0.0,0.0,-0.022591944,0.0,0.0,-0.264000338,0.0,0.0,0.0,0.0,0.0,-0.023614898,0.0,0.005750095,0.0,0.0,0.0,-0.258471282,0.0,0.133941146,0.027691635,0.0,0.0,0.259817096,0.0,-0.026854302,0.084646074,0.0,0.0,0.0,0.019703350,0.0,0.0,0.019703350,0.0,0.044383425,-0.123323690,0.0,-0.092858814,0.0,0.0,0.0,0.0,0.172917276,0.0,-0.120460490,-0.022512505,0.0,0.020464038,0.025638754,0.0,0.0,0.0,0.048565329,0.0,0.008013741,-0.240005924,0.0,-0.037762665,0.120925814,0.062496041,0.0,0.0,0.170867661,0.0,-0.096555537,-0.126604079,0.0,-0.006611604,0.061041077,-0.000880004,0.0,0.0,0.0,0.063559916,0.0,0.0,0.0,0.063559916,0.0,-0.086803313,0.163158508,0.0,0.065014727,-0.094316260,0.030311500,0.0,-0.019324008,0.0,0.0,0.026305257,0.0,0.0,0.026305257,0.0,0.057975799,0.005294768,0.0,-0.152482634,-0.017113389,-0.043874308,0.0,0.163050202,0.027886235,0.0,0.0,0.0,0.0,0.012241191,0.0,-0.012007122,0.143081353,0.0,-0.015605038,-0.088046639,0.007513658,0.0,0.053648527,-0.034167311,-0.038850740,0.0,0.0,0.0,-0.065083193,0.0,0.014095310,0.086236793,0.0,0.034566283,0.029944528,-0.374708415,0.0,-0.019140814,-0.111298111,0.247528678,-0.041825669},{0.0,0.0,0.0,0.0,0.0,0.0,0.095269468,0.0,0.0,0.047547383,0.0,0.0,0.0,0.0,0.0,0.011185525,0.0,0.150924501,0.0,0.0,0.0,0.388545949,0.0,0.087234299,-0.013493961,0.0,0.0,0.129320282,0.0,0.078728769,-0.070847852,0.0,0.0,0.0,0.095696277,0.0,0.0,0.095696277,0.0,-0.047656625,-0.033898378,0.0,0.106698539,0.0,0.0,0.0,0.0,0.112618996,0.0,0.256102079,0.046737600,0.0,0.007708222,-0.091364534,0.0,0.0,0.0,-0.049768914,0.0,0.018781856,0.058745188,0.0,-0.083239434,0.017045235,-0.018394829,0.0,0.0,0.043884096,0.0,-0.111276658,-0.077819772,0.0,0.303938213,0.123218937,0.066254761,0.0,0.0,0.0,-0.057898364,0.0,0.0,0.0,-0.057898364,0.0,0.058785909,0.092459051,0.0,0.057327787,-0.041698175,-0.063638294,0.0,-0.000679853,0.0,0.0,0.047980427,0.0,0.0,0.047980427,0.0,0.031335031,-0.073855460,0.0,0.306583424,0.039175469,0.063142941,0.0,0.150285768,-0.105816156,0.0,0.0,0.0,0.0,0.028689759,0.0,-0.170195341,0.020168194,0.0,0.077464396,0.089635450,-0.055127633,0.0,-0.076274416,-0.149546781,0.057548423,0.0,0.0,0.0,-0.211867012,0.0,-0.043666138,-0.033160751,0.0,0.095150452,-0.076154421,0.152639426,0.0,-0.017322115,0.032280433,0.141537841,0.082274501}};
  vector<vector<double> > itermIntIR = {{-0.0,-0.0,-0.0,0.292278223,0.292278223,-0.199146464,-0.070045468,-0.0,-0.0,-0.0,-0.0,-0.344931793,0.234866401,-0.344931793,0.234866401,0.082383768,-0.067231718,-0.096775649,-0.171575656,-0.171575656,0.116508243,0.040406660,-0.032737652,-0.047219925,0.034144101,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.236205935,-0.160534543,-0.055877319,0.236205935,-0.160534543,-0.055877319,0.045377169,0.065407915,-0.046464548,0.056059992,-0.043762100,0.260520350,-0.176687353,0.260520350,-0.176687353,-0.060960661,0.049225436,0.071068895,-0.052694634,0.062790522,-0.046989380,0.081424970,-0.019535321,-0.019535321,0.014110133,0.006117861,-0.005594681,-0.007809169,0.000603254,-0.002487677,0.006479075,-0.000539798,-0.001782985,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.038246321,0.025459651,0.008088456,-0.006167013,-0.038246321,0.025459651,0.008088456,-0.006167013,-0.009052841,0.009599816,-0.010454368,0.005253068,-0.015052284,-0.010583687,0.017199962,0.000835509,-0.246285109,0.166588406,0.056831324,-0.246285109,0.166588406,0.056831324,-0.045553162,-0.065905468,0.051543506,-0.060505820,0.042896241,-0.079848748,-0.059497067,0.106767136,-0.002962872,0.078707539,0.037331904,-0.027096623,0.037331904,-0.027096623,-0.011928703,0.010983696,0.015304104,-0.000638698,0.004412936,-0.012835321,0.000176876,0.002974123,-0.013396810,0.006275043,0.001444447,-0.004854352,0.095223349,0.095223349,-0.065721756,-0.024330192,0.020513343,0.029260929,-0.014826507,0.020009707,-0.021089334,0.022390639,0.018705171,-0.039298274,0.005288854,-0.020919372,-0.033667144,-0.004866922},{0.0,0.0,0.0,-1.444392243,-1.444392243,0.285289890,-0.230649322,0.0,0.0,0.0,0.0,0.494136584,-0.518108320,0.494136584,-0.518108320,-0.035421957,0.172732749,-0.049475383,-0.564973149,-0.564973149,-0.050094212,-0.366114225,0.221891853,0.074512333,-0.044136961,0.0,0.0,0.0,0.0,0.0,0.0,0.000000000,-0.031388771,0.320036606,0.090747686,-0.031388771,0.320036606,0.090747686,-0.208095296,-0.000468208,-0.058429803,-0.206354834,0.003456526,-0.112014063,-0.090329278,-0.112014063,-0.090329278,0.096195009,0.021677468,-0.266248508,0.014903363,0.176545055,0.139735809,-0.054561049,-0.039893547,-0.039893547,0.013276356,-0.215830834,-0.020304367,-0.010113377,-0.305781341,-0.017445857,0.049772685,-0.030317969,-0.016141831,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.217565337,0.108722332,0.025379965,-0.118551968,0.217565337,0.108722332,0.025379965,-0.118551968,0.096482755,-0.078688319,-0.132486971,-0.057460306,-0.022518802,-0.020675580,0.095314517,-0.062075011,0.182157884,-0.013911418,-0.074297543,0.182157884,-0.013911418,-0.074297543,-0.002193357,0.178970337,-0.020816322,-0.080618831,-0.103707836,0.036928394,0.074424554,-0.001686122,-0.053081246,-0.034127864,0.035125936,-0.070996339,0.035125936,-0.070996339,-0.015448438,-0.013644065,-0.123319293,-0.035872705,0.090516650,0.049352869,-0.132211514,0.083147209,-0.003285950,0.102204332,0.091312289,-0.042804112,-0.123092104,-0.123092104,0.018587760,-0.084992355,0.015897003,-0.032002376,-0.141212403,0.004239859,0.054549620,0.048581166,-0.085329108,0.020517276,0.002383019,0.008101424,0.169721822,0.056522482},{.000000000,0.0,0.0,1.263466835,1.263466835,-0.461620516,-0.022591944,0.0,0.0,0.0,0.0,-0.799550188,0.424621585,-0.799550188,0.424621585,-0.023614898,-0.049810229,0.005750095,-0.055338734,-0.055338734,-0.033396508,0.365114580,0.034711767,-0.172138910,0.027691635,0.0,0.0,0.0,0.0,0.0,0.0,0.000000000,-0.023080258,-0.247157704,0.019703350,-0.023080258,-0.247157704,0.019703350,0.433436043,0.044383425,0.063048310,-0.294377596,-0.092858814,-0.074676863,0.010498189,-0.074676863,0.010498189,-0.222230378,0.083693880,0.126823038,-0.022512505,-0.128503957,0.046327438,0.025638754,0.137675905,0.137675905,-0.028470932,0.009813764,-0.065656678,-0.044776507,0.202505448,0.059956736,0.035112406,-0.135665407,0.062496041,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.137197985,0.198254504,0.063559916,-0.461541585,0.137197985,0.198254504,0.063559916,-0.461541585,-0.086803313,-0.081275898,0.348521289,0.065014727,-0.012011752,-0.016512679,-0.008663781,-0.019324008,0.056934963,0.084005124,-0.087720237,0.056934963,0.084005124,-0.087720237,-0.169723531,0.008510597,0.005294768,0.088326385,0.077706891,-0.017113389,0.087676427,0.042076944,-0.060262178,0.027886235,-0.075327006,0.005611240,-0.075327006,0.005611240,-0.068397244,0.065047566,0.061545900,-0.160521474,-0.075778116,-0.003496606,0.113703387,0.007513658,0.030536791,-0.051543849,0.016102602,-0.038850740,0.077228281,0.077228281,-0.028078026,0.024578049,-0.017163220,-0.026427338,0.041841977,0.020279813,0.004580509,-0.016930490,-0.025962503,0.002978902,0.021366009,-0.022771078,0.015814041,-0.041825669},{0.0,0.0,0.0,-1.084032411,-1.084032411,-0.172751392,0.095269468,0.0,0.0,0.0,0.0,-0.299214188,-0.570963416,-0.299214188,-0.570963416,0.011185525,0.014707904,0.150924501,0.233361585,0.233361585,0.015818722,-0.073419567,0.068163216,-0.040923858,-0.013493961,0.0,0.0,0.0,0.0,0.0,0.0,0.000000000,-0.345498689,-0.053192029,0.095696277,-0.345498689,-0.053192029,0.095696277,-0.349344340,-0.047656625,-0.035468359,-0.180455655,0.106698539,0.035371737,0.275549179,0.035371737,0.275549179,-0.052832474,-0.080903673,-0.099748986,0.046737600,-0.034112635,0.077413381,-0.091364534,0.406826410,0.406826410,0.034517765,0.021321146,-0.125236659,0.057540326,-0.233832826,0.005608944,-0.017291043,-0.105593257,-0.018394829,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.122376286,-0.212112656,-0.057898364,-0.244889167,0.122376286,-0.212112656,-0.057898364,-0.244889167,0.058785909,-0.057476443,-0.014190289,0.057327787,0.066708370,0.039201929,0.139402830,-0.000679853,0.406175118,-0.095374846,-0.068981690,0.406175118,-0.095374846,-0.068981690,0.137365211,0.077924370,-0.073855460,0.117948428,-0.106183373,0.039175469,0.030540350,-0.189475084,-0.054048654,-0.105816156,0.091325421,0.137890467,0.091325421,0.137890467,0.087894299,0.045434091,-0.006337711,-0.124939627,-0.041837239,-0.031643728,-0.114951292,-0.055127633,-0.008616459,0.005371767,-0.040165931,0.057548423,-0.037632860,-0.037632860,0.058292029,0.022750748,-0.057624624,-0.030418452,-0.004537431,-0.039585820,0.006507149,-0.019329441,-0.067667063,0.053412262,-0.009904572,0.068183047,0.014658754,0.082274501}};
  vector<vector<double> > itermIntII = {{0.0,-0.0,0.0,-0.0,-0.0,-0.0,1.958045651,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,-0.0,-0.0,0.161603295,-0.0,1.065099407,-0.0,-0.0,-0.0,0.081795401,-0.0,-0.096953061,1.207548068,-0.0,-0.0,-0.0,-0.0,-0.0,-0.000000000,0.0,-0.0,-0.0,-0.111990654,-0.0,-0.0,-0.111990654,-0.0,0.132741106,0.067203504,-0.0,0.805592986,-0.0,-0.0,-0.0,-0.0,-0.125165864,-0.0,0.148364902,0.075128467,-0.0,-0.102848135,0.782611289,-0.0,-0.0,-0.0,0.005574760,-0.0,-0.006591155,-0.003303302,-0.0,0.004536812,0.005032699,0.897287335,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,-0.0,-0.0,0.020496770,-0.0,-0.0,-0.0,0.020496770,-0.0,-0.024305161,-0.012326653,-0.0,0.016866549,0.018879219,-0.000776032,-0.0,0.695004009,-0.0,-0.0,0.120293681,-0.0,-0.0,0.120293681,-0.0,-0.142598384,-0.072226145,-0.0,0.098867368,0.110556443,-0.004792192,-0.0,-0.018177793,0.591810684,-0.0,-0.0,-0.0,-0.0,-0.010068156,-0.0,0.011899430,0.005954769,-0.0,-0.008182236,-0.009066251,0.000583231,-0.0,0.001384774,0.008620724,0.697031983,-0.0,-0.0,-0.0,-0.040702708,-0.0,0.048224471,0.024374299,-0.0,-0.033387012,-0.037275063,0.001751027,-0.0,0.006053481,0.035777215,-0.003185882,0.685889921},{0.0,0.0,0.0,0.0,0.0,0.0,0.753469452,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.196336525,0.0,0.416244288,0.0,0.0,0.0,0.234510445,0.0,0.054871095,0.348379627,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000000000,0.0,-0.036576377,0.0,0.0,-0.036576377,0.0,-0.272543608,-0.100890887,0.0,0.232384636,0.0,0.0,0.0,0.0,0.070838279,0.0,0.054033010,-0.068668627,0.0,-0.002800393,0.330681973,0.0,0.0,0.0,-0.118755532,0.0,-0.002264035,0.154490012,0.0,0.071710600,0.071972673,0.342923069,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.141014892,0.0,0.0,0.0,-0.141014892,0.0,-0.089288641,-0.042335712,0.0,0.090202068,-0.121130929,0.023656853,0.0,0.092730389,0.0,0.0,-0.088337329,0.0000,0.0,-0.088337329,0.0,0.010966540,0.073957932,0.0,-0.026185940,-0.242489610,-0.034496407,0.0,0.083569970,0.189124876,0.0,0.0,0.0,0.0,-0.003458370,0.0,-0.001514644,0.085159215,0.0,0.032209732,0.085401492,0.143750976,0.0,-0.015917536,-0.041543278,0.134136000,0.0,0.0,0.0,-0.021469972,0.0,0.022127610,0.014445316,0.0,0.014451238,0.119829514,0.131386022,0.0,-0.028961868,-0.091276120,0.029565077,0.104760070},{0.0,0.0,0.0,0.0,0.0,0.0,0.651971116,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.357616281,0.0,0.274779633,0.0,0.0,0.0,-0.042994907,0.0,-0.030648376,0.419273051,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.118803351,0.0,0.0,-0.118803351,0.0,-0.083288174,0.048625153,0.0,0.312091350,0.0,0.0,0.0,0.0,-0.039566884,0.0,0.028202782,-0.236408835,0.0,0.031902815,0.160224556,0.0,0.0,0.0,-0.001065031,0.0,0.011644476,-0.026793664,0.0,-0.011495608,-0.052503205,0.358218844,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.174254930,0.0,0.0,0.0,0.174254930,0.0,0.044033680,0.048169148,0.0,-0.320880399,-0.094169868,0.004640238,0.0,0.358912894,0.0,0.0,0.060656339,0.000000000,0.0,0.060656339,0.0,0.028554578,-0.125845282,0.0,-0.113645039,0.037223423,0.083088488,0.0,0.091852296,0.085260203,0.0,0.0,0.0,0.0,0.017787231,0.0,-0.018181168,-0.062122630,0.0,0.019241081,0.086143588,-0.252464753,0.0,-0.032990134,-0.041136626,0.195777694,0.0,0.0,0.0,0.013991556,0.0,-0.016098710,0.038757345,0.0,0.008811211,-0.033132744,0.054679378,0.0,0.001633918,-0.000791453,-0.046079645,0.014456821},{0.0,0.0,0.0,0.0,0.0,0.0,0.917383610,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.062311097,0.0,0.453653580,0.0,0.0,0.0,-0.475679824,0.0,0.105917941,0.540802500,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000000000,0.0,-0.098772190,0.0,0.0,-0.098772190,0.0,0.047171706,0.110934172,0.0,0.496842534,0.0,0.0,0.0,0.0,0.136739474,0.0,-0.228138146,-0.116963720,0.0,0.014676496,0.166882467,0.0,0.0,0.0,-0.035651321,0.0,-0.122729793,-0.307548457,0.0,-0.050611135,0.030581306,0.366508158,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.003718008,0.0,0.0,0.0,0.003718008,0.0,0.114836574,-0.065488657,0.0,0.158410017,-0.033933705,0.089829981,0.0,0.152567344,0.0,0.0,0.040888836,0.0,0.0,0.040888836,0.0,0.044124527,-0.198275476,0.0,-0.295820752,-0.062179661,0.199908657,0.0,-0.001491372,0.299579553,0.0,0.0,0.0,0.0,-0.187472856,0.0,-0.108422787,0.036184290,0.0,0.000293960,0.001815985,0.066202914,0.0,-0.039043900,0.002586728,0.086772303,0.0,0.0,0.0,0.023698944,0.0,-0.043599086,-0.067452587,0.0,0.067338983,0.028442387,0.058486114,0.0,0.025587451,-0.016746382,0.014184733,0.030750605}};
  
  vector<vector<double> > imat = {{0.912280702,0.281188281,-0.176388716,0.175480685,0.00785994116,0.0714337733,-0.21598726,0.0814048752,0.0655589198,0.00621075429,-0.0218204792,0.105061552,-0.0326250494,0.770481328,-0.00870007542,-0.0548975999,0.0728699506,-0.204257139,-0.0446043821,0.000672075855,-0.0273071137,0.0350279004,-0.103456333,-0.0100475366,-0.00138574146,0.0803395089,0.737298421,0.0614443398,0.0520499647,0.00505439238,0.0139874851,-0.127931332,-0.114374906,0.0565548299,0.00560685203,-0.00917758617,-0.0213835655,-0.0852232714,-0.00621433958,0.999654003,0.0342036674,-0.0856478187,0.0764663284,-0.120825808,-0.00341487255,-0.00608709099,0.00585236195,-0.0260377707,-0.115972298,-0.000283320359,-0.0391974925,0.0477900421,0.847706362,-0.0243143479,0.0033134241,0.00594155704,-0.0142996334,0.012348277,-0.0140810956,0.000233633207,0.0151552667,-0.0234953024,0.0512470852},{0.298245614,-0.103583894,0.130460975,0.0696720757,0.00739549181,0.128779466,-0.00550831847,-0.10642339,-0.0281878976,-0.13230371,-0.0236672012,0.0178588304,-0.00157087641,0.248723976,-0.0112671571,0.0786442799,-0.000521623278,0.0157084119,-0.10144452,-0.340666283,-0.0899182694,0.0152744709,0.105936934,-0.0925238249,-0.00971808013,-0.0295953981,0.0749173845,-0.148550532,-0.000372588055,0.0798916754,-0.00457603925,-0.0406890677,0.0528960279,-0.21187383,0.0801836465,-0.00728006876,-0.0101002873,0.106605322,-0.00804796938,0.382045311,-0.0234862715,-0.00252092008,-0.0012075962,-0.129393783,0.045789093,0.0346265988,-0.064015642,0.119705164,-0.0594153472,0.10740087,0.0289913277,-0.115539303,0.27090143,-0.0336833588,0.092633025,0.00559046633,0.0549832712,-0.059506363,-0.110940235,0.2864411,-0.0195907168,0.0607728917,-0.130743411},{0.333333333,-0.0420254432,0.0407766635,-0.124383098,-0.0158595136,-0.124017441,-0.167014884,-0.125649984,-0.0187921384,-0.00118653517,-0.00257569131,-0.235133385,-0.121555525,0.257634911,-0.0498848167,-0.127252365,0.0494468908,0.0409014207,0.0741043946,0.225608201,-0.00880743312,-0.137393024,-0.180260089,-0.0481146628,0.0333984383,-0.0120072695,0.438369468,0.111306923,0.0353192077,-0.0128070798,0.0004387401,0.12776786,-0.0245131238,0.100922567,-0.0584930123,-0.0576670852,-0.0325242462,0.12558723,-0.0356320119,0.399086098,0.0545076483,0.132068375,0.0301353913,0.0572985313,0.0337695759,0.0218357374,0.0724319065,0.131568722,0.123455693,-0.0488796908,0.00906148078,0.0865720512,0.122126245,0.0329489072,0.00837085094,-0.0119886654,-0.00389551488,-0.0589238766,0.065864191,-0.417456875,0.0122912626,0.00510307477,-0.00113367226},{0.333333333,0.0810266474,0.2909015,-0.193103909,0.019227855,-0.260781748,-0.217196587,-0.098808993,0.00890115827,-0.0397185878,-0.067891335,-0.235921606,0.0983805852,0.260245363,0.0641047909,-0.047621417,-0.0530935116,0.0632037297,-0.100621396,-0.260509551,0.0371406498,-0.0377656614,-0.284008699,0.0615091268,0.00312441901,0.0231504707,0.418174577,-0.152096479,-0.0379239368,-0.0563850863,0.0115086162,-0.183229223,0.0561147261,-0.0793777211,0.0340701626,0.0245638197,0.0235609043,0.0437458286,0.0457891363,0.408321095,0.0220910661,0.228953137,-0.135701533,0.0182019239,-0.0708984436,0.0194767909,0.0638680048,-0.00213623349,-0.175586367,0.0703465779,0.0646447778,-0.118297261,0.4291161,0.0444088743,-0.0614168476,0.0145348922,-0.0352537903,0.0037052151,-0.060825433,0.170053234,-0.00598945566,0.0072495146,-0.0239874256},{}};
  
  vector<vector<double> > emat_real = {{-0.015,0.138335577,0.0572749694,-0.0476059747,-0.0620783412,0.0130965106,-0.0028945632,0.04403621,-0.0174843754,-0.0196086453,0.0466948699,-0.0271271839,0.0171963612,0.0403178114,0.0107682837},{0.19,0.0409970588,-0.0330416441,0.016719644,0.0197361216,0.00651718689,-0.0159085334,0.00993737293,0.0122381647,-0.00862753146,-0.020827809,0.00904090671,-0.00607840704,-0.0187471979,-0.00386246159},{-0.0725,-0.119583333,-0.0374471966,-0.0372060052,-0.0378352608,0.0231109804,0.0162725927,-0.0239300965,0.0301453385,0.020301833,0.0349685248,-0.00705281652,0.025720199,0.0313329341,0.003544654},{-0.0725,0.0673083333,-0.101107431,0.0343888924,0.0574987864,-0.0529644832,-0.0483851096,0.00742339892,0.038885234,-0.023396559,0.0108068959,-0.0320736406,-0.00327216484,0.0203243181,-0.00560530578}};
  vector<vector<double> > emat_imag = {{0.0,0.0,0.0463875647,0.0,-0.0802702626,-0.0263903296,0.0,0.0571906998,0.0649694705,0.0118476973,0.0,-0.0353893785,-0.0694757226,-0.0170727723,0.00711362434},{0.0,0.0,0.0515148087,0.0,4.27876699e-05,0.0238857998,0.0,0.0271331389,0.0393834971,-0.00498316179,0.0,0.00290404232,0.010640045,0.00154099553,0.00545569666},{0.0,0.0,0.0725992425,0.0,0.0733515863,0.0324842739,0.0,0.0463935097,0.0423716094,-0.0029056486,0.0,0.0136733636,0.036151733,-0.0044844471,-0.0102132847},{0.0,0.0,-0.0368432096,0.0,0.0209523654,-0.0445104819,0.0,0.00270506173,0.0326785121,-0.0406299381,0.0,-0.0116875273,-0.00274987359,0.0352947538,-0.0320716231}};
  
  
  vector<vector<double> > lemt_real = {{0.0939048678,-0.0599226717,-0.0332763377,0.0203825472,0.0349183111,0.00602976223,0.00506832603,-0.0218766588,-0.00874653324,0.00703049654,-0.0102687627,0.00715365218,0.00873937927,-0.00894438445,-0.0102712805},{0.00456735567,-0.00618595251,-0.00209501699,-0.00299088375,-0.00554407585,0.00292783333,0.00373689762,-0.00528921547,0.00341451667,0.00245423263,0.00739026954,-0.00246933995,0.00271948561,0.00432907182,0.000628245836},{0.16623429,0.089729743,-0.000544511586,0.0342508752,-0.00101050942,-0.00311292763,0.000793209932,0.00160305387,-0.00397301637,0.00950907701,-0.0127315849,0.00462896797,-0.00255859113,0.0144389892,-0.00166357669},{0.169568346,-0.0345766404,0.0439634924,0.00473427078,-0.00883498895,-0.000535429043,-1.61778087e-05,0.00563209673,0.0131189125,-0.01002374,-0.0106161712,-0.00718750427,-0.00959270046,0.0113768773,-0.00714609804}};
  vector<vector<double> > lemt_imag = {{0.0,0.0,-0.0240483399,0.0,0.0238107024,0.0230048965,0.0,-0.0124253076,-0.0282513926,-0.0138879816,0.0,0.000727121568,0.0196171753,0.0198049318,0.00393514444},{0.0,0.0,-0.00701209005,0.0,-0.00996954484,-0.00369539232,0.0,-0.00789803662,-0.007003066,0.000172794017,0.0,-0.00333875852,-0.00746883204,-0.000700076383,0.00104914067},{0.0,0.0,-0.0293347483,0.0,-0.0292140763,0.014345328,0.0,-0.018137579,0.0182003824,0.000174427092,0.0,-0.00532903779,0.0153299974,0.000196015828,-0.00342930087},{0.0,0.0,0.0458233801,0.0,-0.0243126733,0.0301410043,0.0,0.0146521478,-0.0118644799,0.0109648467,0.0,-0.00807857115,0.0118901868,0.00482563759,0.00140777098}};
  
  vector<vector<double> > hmat_real = {{-0.1363,0.0262324831,-0.0161979291,0.0324525162,-0.0118542086,-0.0257138283,-0.00647560339,0.000811610234,0.00561489805,-0.00898073673,-0.00833216077,0.000660627188,0.00509271632,0.000756220406,-0.000439477415,},{0.02745,-0.0135033963,-0.00599627277,-0.000367520597,0.0024786679,0.000502000198,0.00132272671,0.000121725845,0.000825905846,3.35193913e-05,9.10447341e-06,-0.000101474833,-0.000333734398,-0.000603594197,0.000191556391,},{0.376325,0.0983214012,0.0263302475,0.0183247366,0.00958176073,-0.00356198884,-0.000889920468,3.20009794e-05,-0.00323164899,-0.00134694578,-0.00187367483,-0.00198112097,-0.00248829351,-0.000480008936,-0.00111582851,},{0.211825,0.0462641539,-0.00891284676,0.0148044981,-0.0061911706,-0.00109089161,-0.000600511325,-0.00288978647,0.00180261356, -0.000766880154,-0.00267771653,-0.000805176293,0.000842672758,-0.00169340913,0.000448465804,},{0.032225,-0.00682173888,-0.00544889861,-0.00452228421,0.00359288287,-0.0040525202,0.00621785551,0.000105215668,0.00335532683,0.00578926149,-0.00195927533,-0.00222336909,-0.00055995551,-0.00571530721,-0.00221070339,},{-0.070475,0.0161643335,-0.00808067433,0.0188296171,0.00446687112,-0.0202625911,-0.0077501725,0.00453938683,0.00115128216,-0.00246721949,-0.00309763614,-0.00360712689,-0.000820282342,0.00537205574,-0.00274964784,},{0.02385,0.00670051833,-0.0125420567,-0.00697022778,0.007915404,-0.00343912404,-9.88177888e-05,-0.00359875226,0.00397979203,0.00257620982,0.00184100722,0.000110891173,-0.00116972082,-0.00206168804,0.00308002733,},{0.07615,-0.013072711,-0.00473347235,-0.00449531877,0.0015758117,-0.00950725702,0.00468619528,-2.6941779e-05,0.00437948859,0.00278645733,-0.000642400837,-0.000484569554,-0.000140314764,-0.00146692732,0.00131433414,},{-0.1327,-0.000740222494,0.0207287843,0.0262957456,0.000342976393,0.0280167074,0.00797424081,-0.00264587005,-0.00174957478,0.0197698054,-0.00456278057,0.000391670021,-0.010086621,-0.00347147221,0.0011839096,},{-0.002375,-0.00361360253,0.00125816696,-0.000632783503,0.000708107468,0.0001440089,0.000631501759,-0.000240500351,0.0003978484,-0.000357937497,9.49065928e-05,-0.000129193382,4.78001149e-05,-0.000299459432,-0.000307490109},{-0.0331,-0.014420817,0.0192596019,0.00166544071,0.00558931883,-0.0048321444,0.00141193099,0.000105832546,-0.00191472231,0.00105130258,0.000440458201,-0.000514038735,-0.000268810928,0.000574343207,-0.000390883848},{-0.0223,-0.00899416441,0.0168565191,-0.000562624731,0.00419815137,-0.00586206789,-0.000832932632,0.000232790762,-0.00227270697,-0.00161880579,4.60982537e-06,-0.000377562292,-0.000127746014,-0.00119719459,0.00131461014,},{-0.01955,0.0239050104,0.0317269913,0.0136024807,-0.0127323329,-0.0138425858,-0.011250119,-0.00630569613,0.00473608272,0.00132763733,-0.00227835446,0.00639355395,0.00196815672,0.000993365053,0.004496068},{0.028125,-0.0127744956,-0.00565907733,0.00335485933,-0.00577150331,-0.00639322471,-0.0117501682,0.0227515775,-0.000808919757,0.0241172596,0.0334642018,-0.0173740815,0.015212942,-0.00215565298,-0.0266436913},{-0.00585,-0.0111658741,0.0508634184,-0.052510966,-0.00503811243,-0.0326385457,0.00908195863,-0.0165499472,0.00417366401,-0.043845211,0.020661115,0.00372575487,0.0110565917,0.00663396028,-0.0150460049},{-0.005175,0.0191710418,-0.0194910422,0.00147111482,0.013582462,-0.00828081717,-0.00798204487,-0.0031270871,0.00744973814,-0.00280583948,0.00501606579,-0.00315542727,-0.00313088181,0.00298672096,-0.00031076631},{-0.2011,0,0,0,0,0,0,0,0,0,0,0,0,0,0}};
  vector<vector<double> > hmat_imag = {{0.0,0.0,-0.0163484444,0.0,0.0034387728,0.0161858077,0.0,0.00290057431,-0.00198388206,-0.00800680399,0.0,-0.00121165002,-0.00562090736,0.00287298262,0.00676046711,},{0.0,0.0,0.00236483449,0.0,-0.000171231788,0.000270597504,0.0,0.000709158061,0.000367956009,-0.000125812184,0.0,-0.000158381222,-0.000253729373,-0.000160313981,-0.000171542791,},{0.0,0.0,0.00128001287,0.0,0.00757846583,-0.00776092679,0.0,0.00774668995,-0.0049034135,-0.00193170192,0.0,0.0045968349,-0.00112558028,-0.00143362303,0.000130492944,},{0.0,0.0,0.00184778759,0.0,-0.0016544154,-0.00122219673,0.0,0.000408305151,0.000969875594,0.0015594419,0.0,0.000795556412,-0.00023639615,0.00157065597,-0.000205452783,},{0.0,0.0,-0.012472185,0.0,0.00637829968,0.006734756,0.0,0.000583591738,-0.00571235439,-0.000208818598,0.0,-0.0039329162,0.00105287167,-6.23211913e-05,-0.00379295376,},{0.0,0.0,-0.0223859729,0.0,-0.00664360648,0.00690837133,0.0,-0.00148513119,0.00868522961,-0.00389224268,0.0,0.00141339897,-0.000215142912,0.000796309674,0.000241226167,},{0.0,0.0,0.00546522072,0.0,0.0033500769,-0.0103647934,0.0,-0.00244615629,0.0073785105,-0.00649833616,0.0,0.000804757172,-0.00317203602,0.00480179619,-0.000843654343,},{0.0,0.0,-0.0225820464,0.0,0.00879301954,0.00387408436,0.0,0.000892913753,-0.00200548902,0.00369671039,0.0,-0.0020694787,6.4812326e-05,-0.00204102544,-0.00153995659,},{0.0,0.0,-0.0666841331,0.0,0.00214971309,-0.00898026424,0.0,0.0117953911,-0.0010811057,0.0150009898,0.0,0.00161762443,0.00321332097,-0.00343654518,0.013671065,},{0.0,0.0,0.000905505573,0.0,0.00140632612,-0.000702249352,0.0,0.000258992252,-0.000567409025,-0.000329919067,0.0,-0.000208770593,0.000216633964,-4.75709134e-05,0.000163865341,},{0.0,0.0,-0.00425669679,0.0,-0.00105118486,0.00185947441,0.0,-0.000159027126,0.000652138378,-0.000706700012,0.0,0.000145033409,8.82169176e-05,-0.000388246671,0.000362588067,},{0.0,0.0,-0.00100399944,0.0,-0.00161023136,-0.00462544791,0.0,0.000718256211,-0.00249242692,0.00264538212,0.0,0.000823761074,-0.000583134492,0.00165043115,0.000705149934,},{0.0,0.0,0.00912754411,0.0,-0.00734305212,-0.0144700277,0.0,-0.00284647979,0.00971249509,0.013362589,0.0,0.00408105941,0.00272865398,-0.00733639948,-0.00727354337,},{0.0,0.0,-0.00934361723,0.0,0.00502989264,0.0148473887,0.0,0.00726581651,0.00251471364,-0.00400001479,0.0,0.00815442278,-0.0369755302,0.00256949356,-0.0275937889,},{0.0,0.0,0.0882629907,0.0,-0.00874260686,0.0563207937,0.0,-0.0287190261,-0.00720203871,-0.000106503325,0.0,0.00646528051,-0.0190791595,1.61143899e-05,-0.026256467,},{0.0,0.0,-0.00759781148,0.0,0.0052945853,-0.00761265758,0.0,-0.00121897116,0.00684863635,-0.00572466543,0.0,-0.00123001845,-0.00287825834,0.00609371221,-0.00368955808,},{0.0,0.0,0,0.0,0,0,0.0,0,0,0,0.0,0,0,0,0,}};
  
  vector<vector<double>> lh_all = {{-0.000297953545,-0.000397969067,-0.000298978916,-0.000282436957,-0.000206695282,-0.000480576152,-0.000644060364,-0.000682554367,-0.00057761284,-0.000412298813,-0.00029690155,-0.000282024481,-0.000243833435,-0.000136963033,-0.00062577295,-0.000892830888,-0.00104250705,-0.000998823663,-0.000783983351,-0.000507850912,-0.000297887177,-0.0002622717,-0.000219681014,-0.000112102772,-0.00115802854,-0.00139069065,-0.00141093836,-0.00120319288,-0.000848194177,-0.000483820617,-0.000233869738,-0.000146364084,-0.000177792286,-0.000231426345,-0.000224621833,-0.000142967763,-0.00167869015,-0.00147041347,-0.00107773102,-0.000633336835,-0.000276869413,-9.22180408e-05,-7.48939825e-05,-0.000146252521,-0.000205642821,-0.000190913767,-0.00167671693,-0.00141909678,-0.000994245476,-0.000536380008,-0.000179996086,-2.5507752e-06,-0.00128967342,-0.000940434316,},{0.000195313724,0.000172688138,0.000207222494,0.000186979726,0.000167541714,0.000226457821,0.000207741856,0.000196217645,0.000183570017,0.000161610728,0.00013144108,0.000242419626,0.000223256228,0.000212671921,0.000207534087,0.000199567759,0.000181203668,0.000151334972,0.000116544285,0.000239430816,0.000225108243,0.000217424602,0.000214254224,0.00020958555,0.000196580325,0.000171680356,0.000137236006,0.000100771277,0.000238081228,0.000226496252,0.000217446376,0.000211600798,0.000206750554,0.000198371313,0.000181820555,0.000155141,0.000120820663,8.52833366e-05,0.00022096675,0.000213587921,0.00020440385,0.000194881261,0.000184888642,0.000172412357,0.000154642176,0.000129934866,9.95029169e-05,6.77049548e-05,4.05616003e-05,0.00019471653,0.000192771151,0.000183826518,0.00017010005,0.000153863944,0.000136161905,0.00011658531,9.42387404e-05,6.9235e-05,4.36805234e-05,0.000151790832,0.000159226668,0.000155409472,0.000141467291,0.000120857831,9.74615885e-05,7.40089498e-05,5.16620165e-05,3.07560298e-05,0.000111324899,0.000116911433,0.000108543537,8.8462582e-05,6.18876636e-05,3.44835888e-05,1.03634112e-05,5.78209898e-05,7.12053172e-05,7.09760215e-05,5.58623359e-05,3.02880382e-05,1.69174341e-06,-2.29744915e-05,2.90278238e-05,3.43656351e-05,2.52865085e-05,3.60119542e-06,-2.27492249e-05,6.76732514e-06,2.48855574e-06,-1.40860827e-05,-8.44796701e-06,},{0.00059768188,0.000629648962,0.000677699919,0.000735682379,0.000764233467,0.000720567847,0.000799646465,0.000894406949,0.000985392177,0.00105131616,0.00107825855,0.0010655143,0.00102512097,0.000975471527,0.000932516606,0.00090316599,0.00088406867,0.000865866478,0.000829362854,0.00093530633,0.00106598535,0.00119988331,0.00130931866,0.00137086439,0.00137444525,0.00132686019,0.00124820387,0.0011631107,0.00109112712,0.00104064132,0.00100869398,0.00135931675,0.00151918597,0.00163353259,0.0016792916,0.00165186471,0.00156659568,0.00145234211,0.0013403156,0.00125336992,0.00120025773,0.00178337451,0.00188901821,0.00190929172,0.00184840907,0.00173315045,0.00160236122,0.00149252603,0.00142604934,0.00194846004,0.00203037374,0.00201825009,0.00193172012,0.00181312975,0.00171006394,0.0016570162,0.00205609434,0.00202143512,0.00194520951,0.00188426706,0.00188143253,0.00202903578,0.00202089702,0.00203154981,0.00210658148,0.00205331737,0.00214367554,0.00228776039,},{0.000466661922,0.000477885397,0.000471252699,0.000473741968,0.000505267954,0.000517316054,0.000506077306,0.000496437027,0.000470922612,0.000473501721,0.000521080223,0.000576151599,0.000590822253,0.000557811114,0.000512205835,0.000517453723,0.000491643014,0.000456641501,0.000451534228,0.000496905,0.000574385047,0.000640397614,0.000659222403,0.000625659623,0.000494333769,0.000501953402,0.000482506067,0.000446674405,0.000422885275,0.000438149996,0.000498342328,0.000582784823,0.000656554417,0.0006906797,0.000676108406,0.000624075744,0.00045169534,0.000463452242,0.000465012925,0.000450074237,0.00042632087,0.000412506507,0.00042704658,0.000475767562,0.000547145352,0.000618068505,0.000665956126,0.000679229022,0.000660145326,0.000619876058,0.000570789837,0.000448727458,0.000441213689,0.000440047336,0.000438853875,0.000436009547,0.00043695778,0.000450574059,0.000482241143,0.000528765234,0.000578957145,0.000619608896,0.000642718445,0.000648966767,0.000645222046,0.000638198027,0.000629157902,0.000488957272,0.000462442488,0.000455866018,0.000465716544,0.000487020968,0.000516005167,0.000549665938,0.000583833009,0.000612619952,0.000630838268,0.000638049091,0.000640823929,0.000650358215,0.000675728242,0.000716659744,0.000760962969,0.000789473475,0.000650422663,0.000581470737,0.000538138862,0.00052968641,0.000553615712,0.000599176911,0.00065194177,0.000697596013,0.000725079122,0.000729898736,0.0007172002,0.000702317561,0.000706291236,0.000746327835,0.000825158082,0.000925727155,0.00101607917,0.00106376574,0.000783690044,0.000700817852,0.000654007154,0.000655785633,0.000700024798,0.000766448924,0.00082933628,0.000867244523,0.000871533366,0.000851415225,0.000832589519,0.000847423479,0.000918641451,0.00104394336,0.00119147262,0.00131188636,0.00136287835,0.00133258138,0.000979129561,0.000881205342,0.000809348819,0.000791417611,0.000829322524,0.000899794078,0.000967798089,0.00100552627,0.00100850724,0.00100079892,0.0010239687,0.00111193193,0.00126443282,0.00143808419,0.00156637251,0.00159961776,0.00153735525,0.00119197867,0.00111045724,0.00101271182,0.000942328905,0.000932901713,0.000981966985,0.00105402945,0.00110971065,0.00113946366,0.0011751449,0.0012645079,0.0014221702,0.00159943104,0.00171073132,0.0017029355,0.00160054484,0.00147561084,0.00137445181,0.00128658207,0.00118819935,0.00109598988,0.0010568802,0.00108961674,0.0011605635,0.00123124456,0.00131559833,0.00145486452,0.00162332107,0.00171214047,0.00165689744,0.00151834431,0.00137666421,0.00125342467,0.0011869194,0.00121943703,0.0013197015,0.00146896629,0.00160167169,0.00153767009,0.00136365584,0.00135839233,0.00143081922,},{1.52744972e-05,-0.000101098173,3.69810949e-05,-2.73362688e-05,-9.38409661e-05,-3.57044264e-05,0.000200760742,0.000217392023,0.000118285378,2.42858294e-05,-6.18830986e-05,-7.19523173e-05,0.000179347212,0.000241364151,0.000170063508,2.50692973e-05,5.2189813e-05,0.000137119034,0.000132212467,5.49502755e-05,-2.39475723e-05,0.000140430982,0.000102484078,-1.22603933e-05,-7.71059369e-05,-2.32920164e-05,8.91476363e-05,0.000151593993,0.000126689387,6.32848766e-05,3.56302486e-06,-1.61165536e-05,-6.98691804e-05,-4.08285952e-05,7.07672985e-05,0.000151405872,0.000152397546,-6.58122782e-05,-6.87495384e-05,-3.01825512e-05,8.56167771e-05,0.000155231425,-2.79642721e-05,8.49672073e-05,5.89798938e-05,},{-0.000252894718,-0.000669053069,-0.000415540913,-4.06887226e-05,0.000350457423,-0.000106576855,-0.000104530285,-0.000558788938,-0.000565752562,-0.000406316328,-8.85892686e-05,0.00028941783,0.000588070417,-1.6551331e-05,-3.59108012e-07,2.36089333e-05,2.52141208e-05,-6.96493602e-06,-6.44311242e-05,-0.000138637828,-0.000232487809,-0.000335085355,-0.000387154164,-0.000302163756,-5.2612468e-05,0.000267303342,0.000493245764,6.0682555e-05,4.89982692e-06,1.20725542e-06,1.08163021e-06,-2.64998515e-05,-8.11548191e-05,-0.000152498366,-0.000219204503,-0.000207960903,-4.40889104e-05,0.000195828275,0.000310151202,0.000225865801,7.61634928e-05,-9.06768793e-06,-3.7777746e-05,-7.19194739e-05,-0.00011974462,-0.000111883562,3.56183995e-05,0.000101515042,-9.81696447e-06,-7.20926643e-05,-3.11370203e-05,},{-4.77307048e-05,-5.4644328e-05,7.06834766e-05,6.80826575e-05,1.90898646e-05,-0.000383476308,-0.000359283939,-5.76275569e-05,0.000162886701,0.000181428283,0.000134095967,0.000105543397,0.000100567598,0.000103193017,-0.000649507151,-0.000282302025,0.000131408762,0.000342415727,0.000329842691,0.000227890408,0.000145589994,0.000103520714,8.37860971e-05,7.95730289e-05,-0.000609408889,-0.000105064928,0.000336689986,0.000541647818,0.000509224389,0.000361049203,0.000221077877,0.000140048626,0.000103633767,8.10163484e-05,5.79477152e-05,3.9950154e-05,-0.000609594385,-8.58789958e-05,0.000399811741,0.000676288354,0.000700416368,0.000552399686,0.00036060754,0.000218916482,0.000150724536,0.000127970303,0.000113198645,8.75520428e-05,5.23424944e-05,1.77889035e-05,-0.000293715237,0.000204328336,0.000604872865,0.000789867885,0.000750952275,0.000573385658,0.000373931246,0.00023574945,0.000178070193,0.000169938383,0.000167922481,0.00014729426,0.000108686095,6.46107524e-05,2.42029288e-05,-0.00016382491,0.000247641057,0.000590729162,0.000758582087,0.000731552287,0.000573802962,0.000387688436,0.000256054882,0.000206122105,0.000211536619,0.000224033927,0.000209565406,0.00016539418,0.000111384581,6.75913395e-05,3.80730543e-05,-0.000104477165,0.000182139446,0.0004576012,0.000619809655,0.000627800834,0.000515715639,0.000365208135,0.000255270865,0.000220487886,0.000241125742,0.000266963298,0.000255709324,0.000199688494,0.000124952286,6.70589715e-05,4.34050004e-05,-1.22610402e-05,0.000138157293,0.000316753068,0.000440231585,0.000460393361,0.000389835056,0.000288811961,0.000223147098,0.000221858771,0.000262398933,0.000291762252,0.000266966948,0.000185746838,8.63716831e-05,1.82670476e-05,6.05972317e-06,8.42267438e-05,0.000139446062,0.000224899411,0.000286010958,0.000288038456,0.000242502608,0.000196723647,0.000194244015,0.000237641802,0.000284256229,0.000279487046,0.000201734961,8.26215132e-05,-1.47910732e-05,-4.31681637e-05,0.000116786018,0.000132449822,0.000159476686,0.000170868641,0.000159457385,0.000150090878,0.000173808983,0.000228235744,0.000267424492,0.00023856132,0.000134599809,1.02393969e-05,-5.99165248e-05,8.09503701e-05,9.17412538e-05,9.45071976e-05,9.99439749e-05,0.000105048057,0.000111844256,0.000137881453,0.000189413649,0.000230393404,0.000204911656,0.000104582564,-3.7710382e-06,4.66238687e-05,6.38706919e-05,7.51651146e-05,9.15202098e-05,0.00012525284,0.000172874188,0.00018696851,0.000124632149,3.56522379e-05,5.27071245e-05,7.96951056e-05,0.000117502793,0.00014817012,0.000111406326,8.29938467e-05,0.000106945423,8.61301949e-05,},{0.000158985777,0.000153122821,0.000152980439,0.000170278926,0.000153597938,0.000154137123,0.000145985965,0.000132853482,0.00012590319,0.000167846882,0.000153655329,0.000153883652,0.000157993344,0.000154048614,0.000150354736,0.000165803235,0.000153867269,0.000152950907,0.000160947161,0.000155247972,0.000151564167,0.000163022869,0.000156925055,0.000153788061,0.000164901111,0.000158552554,0.000156671399,0.000162869993,0.00016020198,0.000157630874,0.000171207987,0.000161142789,0.000162616368,0.000153914539,0.000115875339,0.000165674928,0.000165385987,0.000163034083,0.000141941024,0.000170832749,0.000157015072,0.000143212166,0.000175594822,0.0001587032,0.000133807524,0.000144519278,},{0.000401086699,0.000376233939,0.000442437322,0.000348889464,0.000109781374,0.000102254352,0.00026152778,0.000339993663,0.00025803852,4.91946896e-05,-0.000127140897,-0.000277128469,-0.000195652399,-1.14710714e-05,0.00018414867,0.000264583187,0.00017493925,-3.99244057e-06,-9.15010612e-05,6.96986688e-05,-0.000331225954,-0.000395219288,-0.000351832569,-0.000166523069,7.60614885e-05,0.000233160514,0.00021559202,6.78387622e-05,-4.82195193e-05,3.47802201e-05,0.000352732484,-0.000293220653,-0.00034980087,-0.00038522692,-0.00029065096,-6.93421507e-05,0.000160902583,0.000259485728,0.000179956451,1.91045082e-05,-4.83196439e-05,9.01538228e-05,0.000371545207,0.000563604088,0.000402320326,-0.000434101195,-0.00030379782,-0.000286487065,-0.000276377804,-0.000169057074,3.3474983e-05,0.000215723912,0.000250545894,0.000121643997,-4.70392405e-05,-9.29840042e-05,3.11777801e-05,0.000187562608,0.00014242958,-0.000242999263,-0.00087432252,-0.000898902616,-0.000819870064,-0.000610239027,-0.000394088149,-0.000260031689,-0.000179410494,-6.62226394e-05,9.69993057e-05,0.000216738369,0.000186811365,2.16395134e-05,-0.000134556402,-0.000152910984,-6.94549633e-05,-6.29445456e-05,-0.000263136132,-0.000590179015,-0.000813044642,-0.000621974542,-0.00066353171,-0.000545502935,-0.000355870123,-0.000190575239,-5.04712256e-05,8.56306876e-05,0.000157996121,8.75068524e-05,-7.71444863e-05,-0.000179380522,-0.000155115312,-0.000115483227,-0.000162556561,-0.000222865879,-0.00018428076,-0.000115186104,-0.000172329858,-0.000331062582,-0.000404756504,-0.000316926096,-0.000157136827,-9.20765878e-06,7.18741485e-05,2.25791973e-05,-9.29532831e-05,-0.000112853487,-3.89072168e-05,3.15527854e-05,8.19221827e-05,3.25569122e-05,-0.000119684227,-0.000161707582,-6.19321281e-05,1.13828884e-05,-2.27943634e-05,1.05221257e-05,0.000101296416,2.46373944e-05,2.61663384e-06,3.7835188e-05,},{6.11104615e-06,7.21511332e-06,8.53689518e-06,1.10852283e-05,5.27806924e-06,1.39565079e-06,6.00025538e-06,1.06924823e-05,1.01014148e-05,7.15844538e-06,7.75825883e-06,1.60544163e-05,2.44768234e-05,2.21655327e-05,1.14134865e-05,1.96711575e-06,-6.51775704e-07,3.63165327e-06,1.053843e-05,1.43807903e-05,1.37280756e-05,1.09472723e-05,7.23669608e-06,3.8096271e-06,5.64226121e-06,1.67978722e-05,3.24854929e-05,4.17349301e-05,3.87318583e-05,2.76229357e-05,1.5976209e-05,7.59465573e-06,2.91361543e-06,2.44526682e-06,6.35832632e-06,1.20049852e-05,1.51587418e-05,1.43117678e-05,1.18585186e-05,1.02293552e-05,8.50624662e-06,4.59952433e-06,1.94948734e-07,1.30515832e-06,1.24586941e-05,3.07571946e-05,4.69012437e-05,5.27062855e-05,4.75478614e-05,3.75396876e-05,2.90632579e-05,2.36707155e-05,1.89578523e-05,1.32081487e-05,8.07510641e-06,6.56995527e-06,9.16745768e-06,1.27330394e-05,1.35395311e-05,1.1010788e-05,8.06279473e-06,7.65177282e-06,9.26174517e-06,9.22123199e-06,4.79750449e-06,-1.98665344e-06,-4.89375046e-06,1.5883471e-06,1.71226582e-05,3.48809458e-05,4.62397394e-05,4.70396747e-05,4.02836001e-05,3.31914193e-05,2.54025426e-05,1.49643489e-05,8.12425638e-06,7.13993483e-06,9.70434339e-06,1.13931428e-05,9.65699154e-06,5.85672359e-06,3.67687868e-06,5.42495214e-06,9.53206997e-06,1.15387548e-05,7.88028424e-06,-6.45014324e-07,-8.72842125e-06,2.0545274e-05,1.27949637e-05,2.98522317e-05,1.50137791e-05,6.05615503e-06,4.73292699e-06,7.78811803e-06,1.0124595e-05,8.81331477e-06,4.97146724e-06,2.29906268e-06,3.61449848e-06,8.1813757e-06,1.19436375e-05,1.05330817e-05,1.60474994e-05,3.97733379e-06,1.22679656e-06,5.09328643e-06,9.81814377e-06,1.09277068e-05,7.99649262e-06,4.14391218e-06,2.96855826e-06,1.8345314e-06,-2.82516622e-06,1.25082276e-06,8.30446121e-06,1.2382662e-05,1.12125805e-05,6.85831927e-06,-3.25156374e-06,-7.62395599e-06,-2.87441154e-06,5.530711e-06,1.09654839e-05,1.0391704e-05,-1.26339829e-05,-1.26248399e-05,-5.45844914e-06,2.72785097e-06,5.87579813e-06,},{3.9905592e-05,3.0917456e-05,1.89542514e-05,3.22643281e-05,5.41507238e-05,6.41502452e-05,5.95994033e-05,4.27456096e-05,1.75764596e-05,-3.67812412e-06,-1.29234202e-05,-8.02429387e-06,8.67612453e-06,3.20462913e-05,5.50108944e-05,6.87475828e-05,7.09614591e-05,6.78932307e-05,6.18952524e-05,4.7672097e-05,2.38344794e-05,-4.81584501e-05,-4.42839193e-05,-3.03331554e-05,-1.01482154e-05,1.34811733e-05,3.84168494e-05,5.95686804e-05,7.05524662e-05,7.05529538e-05,6.62408766e-05,6.42806828e-05,6.3384449e-05,5.60733163e-05,3.76824486e-05,-9.27646719e-05,-9.16894722e-05,-7.79702853e-05,-5.63946329e-05,-3.23587794e-05,-7.80373321e-06,1.77413703e-05,4.28036176e-05,6.21868801e-05,7.06225134e-05,6.82067288e-05,6.14693556e-05,5.82068978e-05,6.06781431e-05,6.3606557e-05,5.88416309e-05,4.22342134e-05,-0.000160554861,-0.000152240354,-0.00012812805,-9.63152825e-05,-6.46329155e-05,-3.61900452e-05,-9.51652722e-06,1.73874107e-05,4.31014214e-05,6.26290802e-05,7.12260509e-05,6.88249688e-05,6.10609979e-05,5.57063429e-05,5.71375792e-05,6.31278672e-05,6.64551424e-05,6.00532283e-05,4.17313404e-05,1.49466795e-05,-0.000245156861,-0.000211775346,-0.000165620211,-0.000118546105,-7.80383772e-05,-4.4952148e-05,-1.57812985e-05,1.26766796e-05,3.98319043e-05,6.14221623e-05,7.28981765e-05,7.33497438e-05,6.69239167e-05,6.05673956e-05,5.96083434e-05,6.42574666e-05,6.94707593e-05,6.82588702e-05,5.6124895e-05,3.35460683e-05,4.81438639e-06,-0.00034029482,-0.000282177074,-0.000213891575,-0.000149763751,-9.76004895e-05,-5.74203542e-05,-2.44655111e-05,5.88347509e-06,3.45215098e-05,5.84055105e-05,7.34013371e-05,7.79083223e-05,7.46238187e-05,6.92119185e-05,6.68037912e-05,6.87293717e-05,7.17027732e-05,7.00031917e-05,5.91473172e-05,3.85146084e-05,1.10746575e-05,-0.000185218238,-0.000118965614,-6.9635357e-05,-3.16387477e-05,9.06513193e-07,3.03242495e-05,5.48869797e-05,7.1332296e-05,7.82046466e-05,7.75608868e-05,7.39188397e-05,7.13179988e-05,7.06530133e-05,6.9189977e-05,6.25858591e-05,4.79097409e-05,2.53856268e-05,-2.57229343e-06,-3.44963323e-05,-7.27158546e-05,-3.10249045e-05,2.570501e-06,3.08665555e-05,5.28960756e-05,6.6632957e-05,7.18855821e-05,7.11438224e-05,6.79629331e-05,6.43979419e-05,5.96410689e-05,5.09416806e-05,3.5957978e-05,1.44150416e-05,-1.26130957e-05,},{2.81504961e-05,2.30457924e-05,2.15808467e-07,5.68909101e-06,6.05109227e-05,4.26427968e-05,2.36472717e-05,-7.71514588e-06,-3.73620695e-05,-4.31135704e-05,-3.40640837e-05,8.04346971e-05,6.43053572e-05,4.41613185e-05,3.88568866e-05,2.95126585e-05,-7.03957492e-06,-5.61180117e-05,-8.58875945e-05,-8.98955382e-05,-8.37837355e-05,8.82081502e-05,6.61322604e-05,4.11343148e-05,3.76899738e-05,5.04334181e-05,4.77485966e-05,7.57003651e-06,9.27830093e-05,8.22002704e-05,5.28104751e-05,3.08490318e-05,3.49587339e-05,5.64474676e-05,6.48305563e-05,3.43155388e-05,8.87102593e-05,8.5422213e-05,5.98984374e-05,3.29817893e-05,2.59388278e-05,4.1162471e-05,5.82833227e-05,4.92490721e-05,4.09285681e-05,6.62413485e-05,8.33996123e-05,7.71786612e-05,5.2893474e-05,2.94834771e-05,2.22061916e-05,2.9011479e-05,3.12231051e-05,7.78333722e-06,3.08110761e-05,5.17261652e-05,7.04485766e-05,6.92397967e-05,4.98204646e-05,2.65134991e-05,1.10761879e-05,1.8598083e-06,-1.45229589e-05,1.84194881e-05,3.25693573e-05,5.07261149e-05,5.2526474e-05,3.62664555e-05,1.18889437e-05,-1.24922366e-05,-3.83106877e-05,-7.29963117e-05,3.35367622e-06,1.44719319e-05,2.6807437e-05,2.28800566e-05,2.64096978e-06,-2.66143822e-05,-6.07613959e-05,-1.4216317e-05,-5.9369951e-06,-1.00014275e-05,-3.06189304e-05,-6.25660952e-05,-0.000100829179,-4.10491796e-05,-4.39028117e-05,-6.21082826e-05,-9.39709919e-05,-7.03187955e-05,-7.82425969e-05,-9.42555741e-05,-0.000130437487,-0.000120754686,-0.000158133999,},{-0.000111067595,-0.00113279864,0.000155606965,0.000160787462,0.000161849011,0.000156203821,-0.00135887051,-0.00161154479,-0.00163664616,-0.00141900307,0.000149432533,-0.000403086731,-0.000789291621,-0.00120045401,-0.00152534613,-0.00166518553,-0.00157071102,-0.000372876323,-0.00071872171,-0.00107706308,-0.00134734889,-0.00144406026,-0.00132900563,-0.000164600879,-0.000410665827,-0.000695213017,-0.000934125686,-0.00104600604,-0.000984335638,-6.81961027e-05,-0.00023595595,-0.000421959777,-0.000555099312,-0.000575060373,0.000168721749,-2.21489841e-06,-9.38846398e-05,-0.000158068058,-0.000147798155,0.00015735666,0.000128092284,0.000126602273,0.000115887914,0.000131135052,0.000191223628,0.00016817285,0.000102793677,0.000130911385,0.000185710729,0.000226441029,0.000267958815,0.000171352313,0.000103692764,3.14113888e-05,4.56174215e-07,2.84840548e-05,9.57553419e-05,0.000169724388,0.000231261594,0.000179149219,0.000115560243,4.37336367e-05,1.39218147e-05,4.46541088e-05,9.51106472e-05,3.47025505e-05,},{},{-0.00064139399,-0.00114671353,-0.00135897803,-0.00132721678,-0.00125875764,-0.00147719472,-0.00138444768,-0.00139599851,-0.00129336233,-0.000785054458,},{},{-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,-0.0010055,}};
  
  vector<vector<double> > LHNre = {{-0.000263467456,2.20794821e-05,-8.5823178e-05,1.80299359e-05,8.05831733e-06,-2.56617482e-05,},
    {-0.00425577453,0.000663082027,-0.00142902778,0.000297172589,0.000246220532,-0.000403284532,},
    {-0.00372759035,0.00077260019,-0.000818813713,5.07788857e-05,0.000232891837,-0.000145183379,},
    {-0.000624072024,9.67778791e-05,-0.00019323654,3.14598073e-05,3.26755156e-05,-5.42387113e-05,},
    {-0.00373733475,0.000637675539,-0.000968240151,0.00012535115,0.000211629373,-0.000238583478,},
    {-0.000786551209,8.40555303e-05,-0.000217257974,3.89869421e-05,2.65799853e-05,-4.79956423e-05,},
    {-0.0032039087,-0.000130155628,-0.000885296128,0.000166968899,-4.59994117e-05,-0.000210350384,},
    {-0.00509167746,0.000141951133,-0.00166909634,0.000337281915,5.03809529e-07,-0.000368710912,},
    {-0.000244494125,2.34980901e-05,-5.84559002e-05,9.11857275e-06,7.71007188e-06,-1.17380783e-05,},
    {-0.00251823146,0.000325133213,-0.000909074385,0.000200419665,0.000133534853,-0.000280430819,},
    {-0.000271047877,2.2074048e-05,-2.29908492e-05,-1.971265e-07,2.55867708e-06,-1.84139806e-06,},
    {0.00303929585,0.000480818107,-0.000976183745,-0.000192020194,-0.000178513935,0.000252556969,},
    {0.00398465051,0.000103445959,-0.00125790941,-0.000288396586,-3.36829566e-05,0.000330533307,},
    {0.0041573264,0.000138272722,-0.00102878087,-0.000209002455,-4.39595317e-05,0.000193514576,},
    {0.0034492907,-5.31161945e-05,-0.00105211891,-0.00022795069,2.13168059e-05,0.000268330201,},
    {0.00228043933,0.000526796356,-0.000606074257,-0.000163961335,-0.000155771122,6.44835373e-05,},
    {0.00171859159,-8.67542241e-05,-0.000484287619,-9.26837434e-05,2.98311746e-05,0.000115326522,},
    {0.00311144738,0.000276061173,-0.000689243768,-0.000116288298,-7.46838433e-05,9.81351762e-05,},
    {0.00359799196,0.000320594975,-0.00140570827,-0.000390895701,-0.000139778157,0.000447157623,},
    {0.0039295377,0.000304827948,-0.000425898078,-1.87578841e-05,-4.03776728e-05,3.88535796e-05,},
    {0.00471068062,0.000120470456,-0.000499551035,-4.88762608e-05,-1.74620967e-05,3.65438864e-05,},
    {0.00201744779,0.000152793255,-0.000205192432,-9.44412526e-06,-1.88683839e-05,1.54594992e-05,},
    {0,0,0,0,0,0,}};
  vector<vector<double> > LHNim = {{0.0,0.0,-6.8185749e-07,0.0,2.6577572e-06,
    -1.21275585e-06,},
    {0.0,0.0,-0.000303040384,0.0,6.44596476e-05,-0.000179062134,},
    {0.0,0.0,0.000409898554,0.0,-7.94807274e-05,0.000189257551,},
    {0.0,0.0,1.36525135e-05,0.0,4.33723123e-06,4.69219556e-06,},
    {0.0,0.0,0.000189286302,0.0,-1.61811992e-05,9.13716428e-05,},
    {0.0,0.0,-5.48816671e-05,0.0,5.95425231e-06,-2.65185195e-05,},
    {0.0,0.0,8.60650362e-05,0.0,8.75162884e-06,3.51488667e-05,},
    {0.0,0.0,-0.00037921298,0.0,1.10488801e-05,-0.000182739584,},
    {0.0,0.0,2.13131932e-05,0.0,-5.96912672e-08,1.00682022e-05,},
    {0.0,0.0,5.43147013e-05,0.0,4.18387234e-06,2.92315109e-05,},
    {0.0,0.0,1.02799412e-05,0.0,-6.06088156e-07,2.1297067e-06,},
    {0.0,0.0,-0.000188371705,0.0,-2.30241045e-05,0.000104286525,},
    {0.0,0.0,0.000152956364,0.0,1.12831498e-05,-7.62336518e-05,},
    {0.0,0.0,-0.000378167052,0.0,-6.62924117e-06,0.000157976265,},
    {0.0,0.0,-4.89184313e-05,0.0,9.03611287e-06,2.51469996e-05,},
    {0.0,0.0,-0.000524123827,0.0,-8.5673849e-05,0.000228268108,},
    {0.0,0.0,3.0583241e-05,0.0,-1.3955345e-06,-1.55331976e-05,},
    {0.0,0.0,-0.000334958278,0.0,-3.14056457e-05,0.000123575466,},
    {0.0,0.0,-0.000228174001,0.0,-6.40414635e-06,0.000147943088,},
    {0.0,0.0,-3.98289756e-05,0.0,-2.46486482e-06,9.00954568e-06,},
    {0.0,0.0,-0.000260383507,0.0,-6.62564559e-06,4.7788539e-05,},
    {0.0,0.0,-8.69326315e-05,0.0,-7.42284312e-06,1.56464544e-05,},
    {0.0,0.0,0,0.0,0,0,}};
  
  vector<vector<double> > spolFre = {{0.0451293426,-0.0203468447,-0.0213227329,-0.00465044469,0.0143839945,0.00816026402,},{0.00431700846,-0.00276385775,-0.00126993702,-0.00013461451,0.00132858113,-0.000119750835,},{-0.072785155,-0.0170719974,-0.0386651962,0.0184020441,-0.0145652636,-0.0169953456,},{-0.172773692,-0.0564484471,-0.0145538541,-0.0217941132,0.00288474753,-0.00168557228,},{-0.00150333486,-0.000372712343,0.000943580646,0.000564574658,0.000511319181,-0.000566196488,},{-0.000825263332,-0.000719104658,1.16364447e-05,-0.000528663074,2.3278834e-05,4.98469755e-05,},{0.0173936798,-0.0124332715,0.0016547405,0.0113019335,0.0119965626,0.000197391482,},{-0.00520503545,-0.00195181386,-0.00263289039,0.000250320816,-0.00115971765,-0.00129918834,},{-0.0491241392,-0.0222287076,-0.0102816644,-0.00194350471,-0.00705630403,0.00445663439,},{0.051123167,-0.0356468818,-0.00473267904,0.0175265002,0.00640949449,-0.000697591559,},{-0.0196170724,0.0192861765,-0.00545824123,-0.012577084,0.00577082431,-0.0052165386,},{0.0144285975,-0.00575222677,0.00415851628,-0.000167053993,-0.00170309823,-0.000595873105,},{0.00917002264,0.00296099211,-0.00464685328,-0.00140922846,-0.00291850456,0.00341113713,},{0,0,0,0,0,0,},{0.000681039893,-0.000403174719,-0.000246991847,4.13033536e-05,0.000242312409,-1.93558267e-05,},{0,0,0,0,0,0,},{0.0282596871,-0.0207910406,-0.00903817368,0.0102244685,0.0100825895,0.00240179405,}};
  vector<vector<double> > spolHre = {{-0.0577347723,0.0264114936,0.0260299967,0.00529373556,-0.0175243989,-0.00866288183,},{-0.00618657422,0.00594209593,0.00290015405,-0.00651811576,-0.00318742796,-0.00295241065,},{0.0443204242,0.00905470108,0.0215900046,-0.0109111205,0.0081927886,0.00747477593,},{0.0263095363,0.00373820782,-0.00196865049,0.00589098412,-0.00444438554,0.00350677443,},{0.00556113414,0.00344644472,-0.00067341119,0.000671702376,-0.000547337367,-1.44669061e-05,},{0.00393042532,0.00298683147,0.00311108495,0.00141181718,0.00376874132,0.000244171783,},{-0.00786164432,0.0070181452,-0.000784599422,-0.00432754734,-0.00311289405,0.00335885889,},{0.0140517525,0.00747009982,0.00606393512,-0.000308490756,0.00270507878,0.00311412913,},{0.00993016035,-0.000705972173,0.0066417569,-0.00597664893,0.00297996426,0.00288684696,},{-0.0151948744,0.00425102661,0.00963932793,0.00321810954,-0.013683585,-0.00479392644,},{-0.000486604188,0.000378973528,0.00506783163,0.00451039476,-0.00188899616,0.00088313354,},{-0.000294029603,0.00548453944,0.00162699007,-0.00277599648,0.0009569006,0.000319698573,},{-0.0117362696,0.00261086371,0.0111185066,0.00604871889,-0.00108375759,-0.00697391999,},{0,0,0,0,0,0,},{-0.00582953522,0.00375024859,0.00211616498,-0.000908270057,-0.00225765371,-8.0254735e-05,},{0,0,0,0,0,0,},{-0.0178752718,0.0124492967,0.00581048093,-0.00502732099,-0.00603230724,-0.00125515161,}};
  vector<vector<double> > spolFim = {{0,0,-0.00675880094,0,0.00501031033,0.00509312192,},{0,0,-0.00169105815,0,0.00140733453,0.000913882617,},{0,0,0.0118665385,0,0.00206664554,0.0112704581,},{0,0,-0.0346656307,0,-0.00629757172,0.00698876236,},{0,0,-2.95780311e-05,0,-5.73097911e-05,-8.86187555e-05,},{0,0,-0.000128870814,0,-0.000168528713,4.33252674e-05,},{0,0,-0.00789916375,0,0.00629007431,0.0122264297,},{0,0,0.00139750755,0,0.000880542645,0.00154115503,},{0,0,0.016905533,0,0.00732224842,0.00588620814,},{0,0,-0.000389351313,0,0.00198858108,0.000857922009,},{0,0,-0.00299804479,0,-0.00030600479,-0.000332517881,},{0,0,0.00534473465,0,-0.00296450015,0.00288063805,},{0,0,-0.000567566363,0,-0.000310890671,0.00135920252,},{0,0,0,0,0,0,},{0,0,-0.000268256111,0,0.000263933507,0.000229681356,},{0,0,0,0,0,0,},{0,0,-0.000643709523,0,0.000779644522,0.000236218946,}};
  vector<vector<double> > spolHim = {{0,0,0.00974942537,0,-0.00765256163,-0.0066580061,},{0,0,-0.00164641973,0,-0.00163602274,0.000664681187,},{0,0,-0.00809042977,0,0.000824624228,-0.00559580851,},{0,0,-0.00310037933,0,-0.00543804866,-0.00805375333,},{0,0,0.00198832431,0,0.0021854414,-3.11826403e-05,},{0,0,0.00182595717,0,0.00246643814,-0.000807855478,},{0,0,0.00537850414,0,-0.00634536659,-0.00597853053,},{0,0,-0.00380625853,0,-0.00197014478,-0.00425897356,},{0,0,-0.00170853568,0,0.0021468864,-0.00133778748,},{0,0,0.00321815353,0,-0.00388805561,-0.00135846239,},{0,0,0.00111307174,0,-0.00127418969,-0.00121465044,},{0,0,0.000737722384,0,0.000427378058,-0.000192543793,},{0,0,0.00491882965,0,0.000821615581,-0.0029336255,},{0,0,0,0,0,0,},{0,0,0.00202105269,0,-0.00215217525,-0.0017149566,},{0,0,0,0,0,0,},{0,0,0.0015904076,0,-0.001809313,-0.00101168465,}};
  
  vector<vector<vector<double> > > mpolFre = {{{0.0473453607,-0.0213978825,-0.0223163413,-0.00481271484,0.0150887798,0.00848437319,},{0.0036658813,-0.0026283547,-0.00099907238,-4.1806059e-05,0.0012760879,-0.00017076275,},{-0.0809352225,-0.0188349882,-0.0433847635,0.0206422633,-0.016025472,-0.0195529858,},{-0.183653017,-0.0543478111,-0.0188858681,-0.0209481092,0.00393300326,-0.00363340682,},{-0.0014104685,-0.00030188699,0.00093872022,0.00060048184,0.00050115053,-0.00057268161,},{0.00108113464,0.000877652074,-0.000139780276,0.000569260386,-0.000150624494,0.000137237405,},{0.016458322,-0.012244879,0.002015445,0.011339507,0.011929467,0.00012380472,},{-0.00702722318,-0.00132232062,-0.00367854172,0.000462281674,-0.000757068167,-0.00191072425,},{-0.0445137188,-0.020275121,-0.0094856633,-0.00188436379,-0.00656761376,0.00398021414,},{0.0468167569,-0.0346729512,-0.00676911537,0.0182627278,0.00699875395,-0.00129027056,},{-0.0364497493,0.0243746366,-0.0143133367,-0.0100897119,0.00946925674,-0.00862853052,},{0.0209894624,-0.00648436165,0.00647503244,-0.000761878853,-0.00180992057,-0.00053841822,},{0.0093691443,0.00320477334,-0.0048089417,-0.00128478016,-0.00287818315,0.00335617727,},{0,0,0,0,0,0,},{0.00068568584,-0.00040596477,-0.00024872211,4.1654091e-05,0.00024403435,-1.9366829e-05,},{0,0,0,0,0,0,},{0.028373328,-0.020873385,-0.0090756267,0.010263024,0.010123643,0.0024123582,}},
    
    {{0.0479186812,-0.0214492639,-0.0227935039,-0.00512945205,0.0152644917,0.00888973708,},{0.0146638188,-0.00329331501,-0.00632835831,-0.00215623097,0.00139460921,0.00164805903,},{-0.07181931,-0.016840448,-0.038151449,0.018162346,-0.014370668,-0.016769726,},{-0.1727779,-0.056331269,-0.014464766,-0.021783108,0.0029309689,-0.0016551485,},{0.00115962668,0.00113670317,-0.000265896182,0.00090415627,-0.000413178,7.9027111e-05,},{0.000853625965,0.000612065098,-0.000421845703,0.000277925321,-0.000481361641,0.000211639961,},{0.0199013682,-0.0107792705,-0.00132653003,0.00975062645,0.011036639,0.00209871265,},{-0.0050765153,-0.0019226284,-0.0025772548,0.0002621854,-0.0011549036,-0.0012712798,},{-0.0515981361,-0.0234818977,-0.0106761271,-0.00225173132,-0.0073010413,0.00465031853,},{0.050022961,-0.034887593,-0.004729787,0.017201609,0.0063906246,-0.00067090991,},{-0.019843466,0.019416995,-0.0053878678,-0.01260464,0.0057227971,-0.0051835943,},{0.0159509496,-0.00628189171,0.00454875977,-0.00016334849,-0.00179055491,-0.000681780192,},{0.014312678,0.00382231006,-0.00785277832,-0.00275397464,-0.00381715189,0.00559175099,},{0,0,0,0,0,0,},{0.000723304732,-0.000428166349,-0.000263656938,4.38024413e-05,0.000258704783,-1.81187573e-05,},{0,0,0,0,0,0,},{0.0280700927,-0.0206489097,-0.00898080354,0.0101505106,0.0100173065,0.00238856472,}}};
  vector<vector<vector<double> > > mpolHre = {{{-0.0591276869,0.0270856852,0.026594867,0.0053687256,-0.0179194614,-0.00878475331,},{-0.0061194197,0.0059448564,0.002876485,-0.0065122406,-0.0031991693,-0.0029419744,},{0.0451159561,0.00926414403,0.0219045287,-0.0110470938,0.00837157545,0.00749012319,},{0.0273019884,0.00470431775,-0.00314756406,0.00647062184,-0.00441469051,0.0029596442,},{0.0055287716,0.0034321189,-0.0006685431,0.00067082116,-0.00054596447,-1.6213072e-05,},{0.00314400222,0.00235568832,0.00309792808,0.00102172345,0.00374062845,0.000185821635,},{-0.0077546619,0.007079213,-0.00075047059,-0.0042895553,-0.0031296868,0.0033233845,},{0.0144687428,0.00763361529,0.0061854461,-0.000172547308,0.00273544226,0.00315176265,},{0.00940836681,-0.000599056913,0.00627205938,-0.00569504199,0.00280189055,0.00274706229,},{-0.0150895885,0.00394180766,0.00878994843,0.00348845239,-0.0131011977,-0.00518037634,},{-0.000532352298,0.000360315385,0.00327349259,0.004554313,-0.000682450868,0.000261787867,},{-0.00141035112,0.00562270435,0.00122014791,-0.00302276259,0.000870542435,-3.7311754e-06,},{-0.011070644,0.00282601626,0.0108210849,0.00600248992,-0.00118645756,-0.00681601946,},{0,0,0,0,0,0,},{-0.0058378265,0.0037559702,0.0021196865,-0.00090917375,-0.002261382,-8.0307765e-05,},{0,0,0,0,0,0,},{-0.017928862,0.012490046,0.0058289503,-0.0050459279,-0.006052472,-0.0012599674,}},
    
    {{-0.0582936327,0.0266644113,0.0263125275,0.0053429112,-0.0177130615,-0.00880367575,},{-0.00616786406,0.00576138577,0.00289401133,-0.00661050948,-0.0030379768,-0.0030134659,},{0.043763059,0.0089709985,0.021365849,-0.010795667,0.0081203276,0.0074189916,},{0.02623257,0.0037686819,-0.0019358664,0.0058847184,-0.004420585,0.0035228136,},{0.00460553849,0.00290188846,-0.000373075966,0.000545789284,-0.00033974006,-0.000152544248,},{0.00308449009,0.00229703821,0.0031994625,0.000964294542,0.00386709951,0.000182900238,},{-0.00730958286,0.00744791314,-0.00147546078,-0.00443177071,-0.00332727991,0.0039608856,},{0.01385662,0.0074457455,0.00599528,-0.00034053439,0.0027158991,0.003081827,},{0.0101378205,-0.000763250083,0.00639932915,-0.00607650181,0.00277960486,0.00290182721,},{-0.014977221,0.0042416811,0.0096721843,0.0031529294,-0.013636913,-0.0047657203,},{-0.00046119925,0.00043121026,0.0051195752,0.0044380157,-0.0018954242,0.00090206888,},{-0.00163831709,0.00580447703,0.00140158702,-0.00296870318,0.000872437465,0.000422586682,},{-0.0127446247,0.00235707846,0.0116305284,0.00619637265,-0.000916459111,-0.00730267255,},{0,0,0,0,0,0,},{-0.00592818815,0.00381167341,0.0021525875,-0.000919833654,-0.00229522088,-8.1151484e-05,},{0,0,0,0,0,0,},{-0.0177679442,0.0123777943,0.00577045914,-0.00500376889,-0.00599179184,-0.00124253227,}}};
  vector<vector<vector<double> > > mpolFim = {{{0,0,-0.00712965727,0,0.00529941373,0.00535231353,},{0,0,-0.0014802189,0,0.0013275413,0.00075091127,},{0,0,0.0124895807,0,0.00234211065,0.0120299201,},{0,0,-0.0356564,0,-0.00509328128,0.00693302331,},{0,0,-1.712763e-06,0,-2.6154264e-05,-8.6281454e-05,},{0,0,-2.5435518e-05,0,-1.72964317e-05,6.96385216e-05,},{0,0,-0.0080369411,0,0.006308486,0.012285776,},{0,0,0.0015656702,0,0.00102344057,0.00181080839,},{0,0,0.0152477498,0,0.0066692867,0.0054223137,},{0,0,-0.00185914543,0,0.00263140811,-3.98347047e-05,},{0,0,-0.00353943996,0,-0.000275903152,-0.000762675536,},{0,0,0.00771538093,0,-0.00325815516,0.0045428017,},{0,0,-0.00055328611,0,-0.00014976938,0.00132741429,},{0,0,0,0,0,0,},{0,0,-0.00027000099,0,0.00026567486,0.00023120404,},{0,0,0,0,0,0,},{0,0,-0.00064698334,0,0.00078365342,0.00023752552,}},
    {{0,0,-0.00704869557,0,0.00519473801,0.0053561941,},{0,0,-0.00451144629,0,0.0019236176,0.00360783741,},{0,0,0.011714814,0,0.0020385092,0.011124766,},{0,0,-0.034706238,0,-0.0062631668,0.0070352025,},{0,0,9.44977674e-05,0,0.000194104548,-9.86682405e-05,},{0,0,-0.000127875113,0,-0.000145828082,0.000106908511,},{0,0,-0.00939846408,0,0.00653029983,0.0125195627,},{0,0,0.0013753953,0,0.00086087237,0.0015164032,},{0,0,0.0175992839,0,0.00758892362,0.00607787723,},{0,0,-0.00051172431,0,0.0020722666,0.00082783877,},{0,0,-0.0028587719,0,-0.00038461598,-0.00031621587,},{0,0,0.00591849563,0,-0.0032032835,0.00322264059,},{0,0,-0.00125845381,0,-0.000401368511,0.00216476831,},{0,0,0,0,0,0,},{0,0,-0.000283532206,0,0.000278884786,0.000243840716,},{0,0,0,0,0,0,},{0,0,-0.000643399843,0,0.000778726473,0.00023811042,}}};
  vector<vector<vector<double> > > mpolHim = {{{0,0,0.0100075491,0,-0.0078621809,-0.00679743454,},{0,0,-0.0016522443,0,-0.001634594,0.00066566487,},{0,0,-0.00830068128,0,0.000817075575,-0.00571544805,},{0,0,-0.00265397279,0,-0.00534328249,-0.00874152538,},{0,0,0.0019811018,0,0.0021779404,-3.3350699e-05,},{0,0,0.00177391614,0,0.00238886605,-0.000817130615,},{0,0,0.0053986039,0,-0.0063170832,-0.0059382028,},{0,0,-0.00386582369,0,-0.00206315326,-0.00432051653,},{0,0,-0.00166781621,0,0.00186309741,-0.00120259914,},{0,0,0.00332215777,0,-0.00396805134,-0.00148251694,},{0,0,0.000446626494,0,-0.000844198657,-0.000632566232,},{0,0,0.000643664413,0,0.000361685513,-0.000300933019,},{0,0,0.00492592762,0,0.000891085272,-0.0028493565,},{0,0,0,0,0,0,},{0,0,0.0020245249,0,-0.0021558491,-0.0017181383,},{0,0,0,0,0,0,},{0,0,0.0015912361,0,-0.0018105596,-0.0010116607,}},
    {{0,0,0.00975218648,0,-0.00765067046,-0.00665334267,},{0,0,-0.00174612179,0,-0.00157553037,0.000780354663,},{0,0,-0.0079955691,0,0.00081858053,-0.005546132,},{0,0,-0.0031259308,0,-0.0054244082,-0.0080428963,},{0,0,0.0018562925,0,0.00201146433,-6.75782678e-05,},{0,0,0.00180831619,0,0.00243629863,-0.000824132632,},{0,0,0.00474404141,0,-0.00619654566,-0.00575456497,},{0,0,-0.0037868076,0,-0.0019450153,-0.0042359335,},{0,0,-0.00171235173,0,0.00232910514,-0.00115260602,},{0,0,0.0032355369,0,-0.0038566783,-0.0013177014,},{0,0,0.0011058132,0,-0.0012809538,-0.0012341762,},{0,0,0.000278742642,0,0.000514080753,-0.000389815159,},{0,0,0.00494378915,0,0.000762591272,-0.00304471357,},{0,0,0,0,0,0,},{0,0,0.00205646018,0,-0.0021886901,-0.00174558748,},{0,0,0,0,0,0,},{0,0,0.00158730642,0,-0.00180568972,-0.00101034653,}}};
  
  vector<vector<vector<vector<vector<double> > > > > delTAre = {{{{{-0.000259502888,1.89754708e-05,6.39030922e-05},{4.69676967e-05,1.910446e-06,7.74403636e-05},{-0.000122023482,1.22194919e-05,3.32111769e-05},{3.58476672e-05,-2.27965884e-06,-1.6472174e-05},{1.79424313e-05,1.19558242e-06,2.84247596e-05},{-4.65907879e-05,6.5251633e-06,1.1009676e-05},},{{-0.000210020709,-5.70745619e-05,0.00010673908},{7.65364913e-05,1.9324321e-05,4.52061648e-05},{-8.18334407e-05,-3.29322437e-05,5.4119472e-05},{1.59122651e-05,3.57697922e-06,-2.61080992e-05},{2.74691385e-05,8.95567341e-06,1.23590951e-05},{-2.52359823e-05,-1.73549357e-05,1.64887321e-05},},{{-0.000357457546,-8.98565744e-05,0.000171078318},{0.000150255523,3.80964513e-05,0.000102421215},{-0.000176724937,-6.60358827e-05,0.000106246699},{4.62178463e-05,9.53168724e-06,-6.44664441e-05},{6.67356568e-05,2.19923571e-05,3.65354766e-05},{-6.98920497e-05,-4.45530328e-05,3.98424322e-05},},{{-0.000263976892,0.000152893423,0.000280066572},{0.000194199469,-6.43302767e-05,-6.77272081e-06},{-6.02634635e-05,8.9488145e-05,0.000137319761},{-2.63822512e-05,-4.32364716e-06,-5.35961404e-05},{6.37944827e-05,-3.17704671e-05,-2.21094e-05},{-7.03078006e-06,4.91126479e-05,4.13109244e-05},},{{-0.000160261345,3.91931482e-05,8.08380762e-05},{4.23322745e-05,-6.02717843e-06,2.35067207e-05},{-4.40180332e-05,1.67390595e-05,2.99334383e-05},{5.66144871e-06,-1.81007451e-06,-1.00258609e-05},{1.1221118e-05,-2.00975053e-06,4.33947001e-06},{-9.66700878e-06,6.26314289e-06,6.98528612e-06},},{{-0.000214974576,-7.44393875e-06,0.000139801293},{0.000102545321,7.38708589e-06,2.98936318e-05},{-8.20458042e-05,-3.41294343e-06,7.25104918e-05},{6.33811765e-06,-1.30134953e-06,-3.2123563e-05},{3.78185703e-05,3.53007902e-06,4.5597108e-06},{-2.8855811e-05,-2.21484259e-06,2.43040151e-05},},{{-0.000134981952,5.2477915e-05,4.80056962e-05},{2.66936437e-05,-6.14174829e-06,2.81708305e-05},{-3.97763581e-05,2.35956589e-05,1.88752564e-05},{8.59244014e-06,-3.30206662e-06,-7.17356545e-06},{7.54707318e-06,-2.13708332e-06,6.69598894e-06},{-7.69915523e-06,8.94121166e-06,4.50477433e-06},},{{-0.000326086543,6.40019096e-05,0.000233747915},{0.000178547585,-1.40066532e-05,4.00644486e-05},{-0.000124396307,4.09690727e-05,0.000126252208},{3.50141464e-06,-7.03110476e-06,-5.76925621e-05},{6.90530609e-05,-6.84999079e-06,2.1000601e-06},{-4.53892933e-05,2.2590953e-05,4.49562184e-05},},{{-0.000193681846,-7.70211938e-05,0.000146720008},{9.50618124e-05,3.21028951e-05,2.21346688e-05},{-5.89449108e-05,-3.9058164e-05,6.72188522e-05},{2.46714607e-06,8.6015575e-07,-2.86113467e-05},{2.98170343e-05,1.34191253e-05,1.52718789e-06},{-1.39263513e-05,-1.87018132e-05,1.77674103e-05},},{{-0.000368766249,3.97555462e-05,1.5321091e-05},{-1.75066514e-06,6.50982638e-06,0.000107681043},{-0.000160058684,2.21884718e-05,-1.23790719e-06},{4.5644442e-05,-2.82215375e-06,4.20878755e-06},{-4.99939316e-06,3.19858477e-06,3.64325846e-05},{-5.54573105e-05,1.06341775e-05,-3.31589381e-06},},{{-0.00047825084,-0.000130124669,7.96795854e-05},{5.24484647e-05,1.65722115e-05,0.000174238679},{-0.000240108676,-9.49991879e-05,3.7086665e-05},{8.73060865e-05,2.26921513e-05,-1.881275e-05},{1.69167078e-05,7.39538637e-06,6.99556649e-05},{-8.8351318e-05,-5.95465373e-05,9.01493901e-06},},{{-0.000210800549,8.39240847e-05,6.7861677e-05},{4.04963101e-05,-7.7731772e-06,5.09119493e-05},{-6.84710592e-05,4.12729963e-05,2.86352155e-05},{1.71896547e-05,-6.49968384e-06,-1.187813e-05},{1.25959382e-05,-2.83005769e-06,1.35861201e-05},{-1.50523872e-05,1.72946092e-05,7.60211213e-06},},{{-0.000243373977,1.30982118e-05,0.000107941849},{0.000101092926,1.72442861e-06,6.97474534e-05},{-0.000129358722,1.05613558e-05,7.14834936e-05},{3.35770033e-05,-3.09770929e-06,-4.31688339e-05},{4.86636264e-05,1.29622572e-06,2.63085969e-05},{-5.86990019e-05,6.67190541e-06,3.05490835e-05},},{{-0.00021756096,9.23935851e-05,0.000173244497},{4.32391958e-05,-1.10201069e-05,7.56606273e-06},{-2.33097878e-05,1.88979508e-05,3.05747286e-05},{-2.75118077e-07,-6.35450858e-07,-4.68181409e-06},{5.31097035e-06,-1.85304104e-06,-2.94047508e-07},{-1.87853744e-06,3.51720759e-06,3.34435273e-06},},{{-0.000216403743,-9.17888329e-06,2.24347281e-05},{3.76308473e-06,8.5753418e-07,2.17973618e-05},{-3.34242738e-05,-2.02679731e-06,2.66090273e-06},{3.33166792e-06,1.68634496e-07,-2.60050584e-07},{2.50063381e-07,1.29612864e-07,2.63412545e-06},{-4.07150446e-06,-4.05421634e-07,1.34964869e-07},},{{-0.000128276181,3.38990587e-05,5.5226871e-05},{1.11476575e-05,-1.79548885e-06,8.12142337e-06},{-1.3847543e-05,5.5482491e-06,7.8825842e-06},{8.39482904e-07,-2.46457768e-07,-1.03321414e-06},{1.13697818e-06,-2.28096754e-07,6.46034202e-07},{-1.13342295e-06,7.84826191e-07,6.98207043e-07},},{{-0.000225136546,1.22577708e-05,8.38472435e-06},{-4.20438602e-07,9.83386278e-07,2.28984815e-05},{-3.49743061e-05,2.48131021e-06,-2.97294987e-07},{3.49532184e-06,-1.00835376e-07,3.21501292e-07},{-3.75049248e-07,1.7183044e-07,2.764271e-06},{-4.2870401e-06,4.23896052e-07,-2.47135617e-07},},},{{{-2.22987048e-05,5.29576647e-07,5.26014344e-06},{4.72866155e-06,1.55543442e-06,6.03653619e-06},{-1.07391059e-05,1.85344708e-07,3.34366865e-06},{3.0761308e-06,-1.38531073e-07,-2.21894102e-06},{2.13125249e-06,9.24690345e-07,2.43906317e-06},{-4.82053291e-06,-2.51667104e-07,1.2082507e-06},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-0.000433571751,-9.26900081e-05,0.000137393568},{0.000124936635,3.26562034e-05,0.000119579289},{-0.000199851172,-6.65133374e-05,8.83435418e-05},{5.32225127e-05,1.01650509e-05,-5.58069386e-05},{5.73363917e-05,1.93301235e-05,4.19989809e-05},{-7.482338e-05,-4.41032399e-05,3.4091593e-05},},{{-0.000333806749,0.000162927124,0.000213360119},{0.0001541986,-5.47901652e-05,2.56180974e-05},{-8.58680172e-05,9.18380017e-05,0.000109034876},{-1.14571019e-05,-7.44788233e-06,-4.59043315e-05},{5.31503098e-05,-2.80978881e-05,-1.00734208e-05},{-1.32665848e-05,4.85669797e-05,3.39505484e-05},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-6.54542314e-05,4.50255986e-06,2.13176459e-05},{1.75705882e-05,2.11505792e-06,1.41156173e-05},{-2.84641532e-05,2.07747552e-06,1.24242821e-05},{5.58985345e-06,-1.18485709e-06,-6.47960934e-06},{7.40462486e-06,1.13222452e-06,4.37674084e-06},{-1.13102736e-05,2.58848136e-07,4.69831605e-06},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-0.000377115399,7.28013951e-05,0.000170551886},{0.000136898435,-1.20862167e-05,6.23945711e-05},{-0.000139922524,4.33699481e-05,9.68018117e-05},{1.45430576e-05,-7.92467518e-06,-4.76446886e-05},{5.59308138e-05,-6.05549179e-06,1.09967751e-05},{-4.79666732e-05,2.27344861e-05,3.60830614e-05},},{{-7.7986379e-05,-2.01750821e-05,2.04621426e-05},{1.58640292e-05,3.62950847e-06,1.87012481e-05},{-2.892105e-05,-1.18714355e-05,1.12175626e-05},{6.92352116e-06,1.99275824e-06,-5.97080347e-06},{6.21030025e-06,1.83994227e-06,5.45684786e-06},{-8.13752071e-06,-6.08868699e-06,3.72125512e-06},},{{-0.000321449666,3.22316295e-05,-3.30848394e-05},{-2.8402514e-05,5.98570609e-06,8.09647896e-05},{-0.000126755995,1.63522062e-05,-2.00836102e-05},{3.28329756e-05,-1.94292476e-06,1.10108582e-05},{-1.26820008e-05,2.82659179e-06,2.60793267e-05},{-4.21514427e-05,7.26780773e-06,-8.11183765e-06},},{{-0.000553220992,-0.000125853942,3.02145021e-05},{1.93498804e-05,1.12658396e-05,0.000180082182},{-0.000254541569,-9.03665065e-05,1.36824316e-05},{8.71558917e-05,2.14365089e-05,-7.88528998e-06},{5.43794193e-06,4.96170397e-06,6.96246271e-05},{-8.94205751e-05,-5.63388655e-05,2.13479459e-06},},{{-1.78701791e-05,7.29848583e-06,6.72228893e-06},{5.41794041e-06,-2.71295653e-08,3.36251404e-06},{-5.52827462e-06,4.27882609e-06,3.83106241e-06},{1.06234856e-06,-8.20211838e-07,-2.06747987e-06},{2.28272165e-06,1.72315511e-08,8.29326155e-07},{-1.4170253e-06,2.25773438e-06,1.42435266e-06},},{{-0.000236434587,1.41619491e-05,5.81917858e-05},{5.84485211e-05,1.71933832e-06,6.82276948e-05},{-0.000118660952,9.64106001e-06,4.13293456e-05},{3.36504007e-05,-2.78206793e-06,-2.71048993e-05},{3.02193291e-05,1.29331317e-06,2.64000873e-05},{-5.15115815e-05,5.28942124e-06,1.8889133e-05},},{{-1.61285677e-05,9.84669727e-06,1.35374941e-05},{3.65175972e-06,-1.01421794e-06,-1.07841324e-06},{-1.02290688e-06,2.57696212e-06,2.58218406e-06},{-4.71550206e-07,-1.83072437e-07,-2.97053732e-07},{4.77098085e-07,-2.3468949e-07,-3.90165078e-07},{-8.23480802e-08,6.02934002e-07,3.51507163e-07},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},},},{{{{-0.000290516998,-5.6489622e-05,0.000105181117},{-9.54707272e-05,-1.29408668e-05,-7.41874641e-05},{0.000122487057,3.81260202e-05,-6.75079986e-05},{2.78953641e-05,7.84779811e-06,-4.05571025e-05},{4.43278229e-05,7.76645405e-06,2.18307736e-05},{-3.9674718e-05,-2.20631704e-05,2.74280679e-05},},{{-0.000391396405,4.7100556e-05,2.55587524e-05},{-2.08163453e-05,6.50580472e-06,-0.000120475068},{0.000175164648,-2.85856671e-05,-1.47193789e-05},{5.76916951e-05,-5.84639236e-06,-8.75965655e-06},{8.52255988e-06,-3.5796896e-06,4.59250071e-05},{-6.33774086e-05,1.51818175e-05,4.86938513e-06},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-0.000417481426,-0.000153842715,4.28936016e-05},{-3.27204083e-05,-5.81509054e-06,-0.000114137082},{0.000140823947,7.89351663e-05,-2.31368226e-05},{4.27249951e-05,1.58742735e-05,-1.13144491e-05},{1.32261102e-05,3.48926872e-06,3.41473788e-05},{-3.2925579e-05,-3.37338061e-05,8.53123897e-06},},{{-0.000338381818,-1.63145802e-05,-9.33132094e-06},{9.49709257e-06,4.9327146e-06,-9.82916767e-05},{0.000145921085,1.04601842e-05,6.71545856e-06},{4.49759104e-05,2.24307344e-06,4.88417243e-06},{-4.79935659e-06,-2.83628631e-06,3.57540971e-05},{-5.11596013e-05,-5.60769754e-06,-2.77869169e-06},},{{-0.000200943934,-0.000179248235,0.000134257921},{-9.55793372e-05,-5.35648097e-05,-7.39762514e-05},{5.30438954e-05,9.48495581e-05,-6.75847975e-05},{2.48552702e-05,1.83812252e-05,-4.17749495e-05},{3.25672567e-05,2.71892362e-05,1.98183011e-05},{7.00963558e-06,-3.74549773e-05,1.51947108e-05},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-0.00016876937,1.05648218e-05,-2.13224877e-05},{1.79497797e-05,-8.27310269e-07,-4.30480655e-05},{6.71859151e-05,-6.57389863e-06,1.2692411e-05},{1.76467607e-05,-1.29358326e-06,7.10319088e-06},{-7.81962508e-06,5.15516493e-07,1.39839615e-05},{-2.22379217e-05,3.64337456e-06,-4.86612043e-06},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-0.00025533476,-0.000123303967,7.412123e-05},{-4.85630231e-05,-2.07776882e-05,-5.58571268e-05},{6.82736549e-05,5.53824113e-05,-3.43392429e-05},{1.60659182e-05,8.10138225e-06,-1.70809674e-05},{1.56565024e-05,8.98897194e-06,1.25736995e-05},{-8.78846633e-06,-2.02858246e-05,8.52528899e-06},},{{-0.000352898431,-5.76227493e-05,6.02906468e-05},{-6.45637342e-05,-3.42894472e-06,-0.000131438453},{0.000190817292,4.60041723e-05,-4.56534543e-05},{7.41570913e-05,1.33897013e-05,-3.31504905e-05},{3.65043413e-05,2.22580736e-06,5.89439617e-05},{-8.0702055e-05,-3.1176171e-05,2.26964967e-05},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-0.000361266702,-3.39803019e-05,0.000187417944},{-6.06601703e-05,-4.02390661e-06,-1.89851736e-05},{4.88214893e-05,9.19343755e-06,-4.28932178e-05},{3.7423317e-07,5.99689482e-07,-8.30803684e-06},{9.65300627e-06,9.94249977e-07,1.61706972e-07},{-5.45994828e-06,-2.20722864e-06,6.1866363e-06},},{{-0.000485872386,-0.000253914532,8.72154718e-05},{-2.98820002e-05,-1.2180911e-05,-6.40434235e-05},{6.76234493e-05,5.71399478e-05,-2.1129765e-05},{1.03735979e-05,5.22642146e-06,-5.21791059e-06},{5.26322321e-06,3.10226277e-06,8.32076887e-06},{-5.24003626e-06,-1.05533172e-05,3.10623143e-06},},{{-0.000171463775,-7.31930556e-05,9.37418643e-05},{-2.82284642e-05,-1.10809274e-05,-9.031451e-06},{1.97819902e-05,1.57759717e-05,-1.99605385e-05},{7.52290221e-08,1.95047781e-07,-3.91469917e-06},{4.00639603e-06,2.1852657e-06,-6.85108433e-09},{-1.34281622e-06,-3.13673316e-06,2.37089962e-06},},},{{{-0.000183895447,-6.03060489e-05,0.000141345372},{-0.000121439044,-1.67254687e-05,-5.28070015e-05},{8.68041477e-05,4.06086783e-05,-8.58703716e-05},{1.97048041e-05,7.97182001e-06,-4.93538562e-05},{5.35746732e-05,9.67641945e-06,1.54902856e-05},{-2.95933631e-05,-2.3348843e-05,3.2965936e-05},},{{-0.000248632153,2.81052317e-05,7.02376452e-05},{-4.84369872e-05,1.11547756e-05,-9.89441769e-05},{0.000134620092,-2.05339797e-05,-3.42501221e-05},{5.16259213e-05,-4.8989244e-06,-1.67238212e-05},{1.72031143e-05,-5.43658363e-06,4.14027594e-05},{-5.4429073e-05,1.20837045e-05,1.01638756e-05},},{{-0.000147855795,4.91935099e-06,5.55845903e-05},{-3.92441539e-05,4.89016311e-06,-5.0872102e-05},{7.36985795e-05,-3.78110601e-06,-2.77498074e-05},{2.41821083e-05,-6.62065578e-07,-1.33145221e-05},{1.4433558e-05,-2.22354568e-06,1.92477391e-05},{-2.77196529e-05,2.21195171e-06,8.81113495e-06},},{{-0.000102419879,-4.04204823e-05,2.24960963e-05},{-8.98551282e-06,4.5624168e-08,-2.87632692e-05},{3.46790939e-05,1.79338161e-05,-6.35371705e-06},{9.66890617e-06,2.93524788e-06,-1.22529149e-06},{1.72249167e-06,-1.60127999e-07,7.67410337e-06},{-7.54982957e-06,-6.5018192e-06,1.17383103e-06},},{{-0.00027136056,-0.000141890112,0.000103063019},{-6.32775068e-05,-1.22847156e-05,-9.87477216e-05},{0.000105617827,7.53305423e-05,-4.47439541e-05},{3.93808227e-05,1.62934882e-05,-1.90731877e-05},{2.11835789e-05,5.6987067e-06,3.16749794e-05},{-2.48851366e-05,-3.22277752e-05,1.32149335e-05},},{{-0.000238195033,-2.57286965e-05,4.1351008e-05},{-2.08920368e-05,5.45471317e-06,-9.13369957e-05},{0.000123217394,1.57614801e-05,-1.47729009e-05},{4.51478798e-05,3.31251807e-06,-3.36797643e-06},{4.57676974e-06,-3.00195783e-06,3.61812829e-05},{-4.71278787e-05,-8.28139846e-06,3.0834365e-06},},{{-0.000164406064,-0.000180332257,0.000160246399},{-0.000110624771,-6.06843677e-05,-7.00477393e-05},{4.07728054e-05,9.43995893e-05,-7.82235259e-05},{2.36052249e-05,1.88147575e-05,-4.6949429e-05},{3.66975242e-05,2.97365362e-05,1.88841844e-05},{1.09278009e-05,-3.6202907e-05,1.71509514e-05},},{{-0.000136198762,-3.51829459e-05,3.59401167e-05},{-1.81384008e-05,-2.15456068e-08,-4.09597053e-05},{5.38479962e-05,1.76200209e-05,-1.28257862e-05},{1.57198723e-05,3.14368761e-06,-3.97493495e-06},{4.719349e-06,-9.4171733e-08,1.25182751e-05},{-1.50760551e-05,-7.38703999e-06,3.01295269e-06},},{{-0.000196636824,3.60454899e-05,2.30574928e-05},{-4.85592801e-06,3.77364557e-06,-6.65643716e-05},{8.82027223e-05,-2.20711877e-05,-3.43365962e-06},{2.85221746e-05,-4.84148436e-06,1.73337224e-06},{-1.97161784e-06,-1.02614954e-06,2.2793596e-05},{-2.84521631e-05,1.09089844e-05,-1.3219753e-06},},{{-8.67655562e-05,-3.73676181e-05,0.000110153314},{-6.75888816e-05,-1.2385004e-05,-4.14197971e-06},{2.32672605e-05,1.74368954e-05,-4.77925565e-05},{-2.85222196e-06,1.0156129e-06,-1.79899432e-05},{2.02161684e-05,5.02711726e-06,-2.52551597e-06},{-4.58248254e-06,-7.22562394e-06,1.26221012e-05},},{{-0.000101635904,1.64004851e-06,7.50282659e-05},{-5.01464431e-05,4.052229e-06,-2.08936374e-05},{4.01029764e-05,-1.102162e-06,-3.54588899e-05},{6.75936102e-06,3.00530608e-07,-1.52928956e-05},{1.70569015e-05,-1.54287908e-06,5.2364646e-06},{-1.2778323e-05,6.13896673e-07,1.06050372e-05},},{{-0.000121910088,-9.63450895e-05,0.000109428676},{-6.68586814e-05,-2.65066232e-05,-3.43341147e-05},{3.39106713e-05,4.51999871e-05,-4.7276227e-05},{9.59824687e-06,6.70302622e-06,-2.19103638e-05},{2.02369133e-05,1.08481328e-05,7.57716948e-06},{-1.86114261e-06,-1.66823711e-05,1.10588739e-05},},{{-0.000226436546,-5.27170409e-05,9.23761072e-05},{-8.87549558e-05,-3.84640458e-06,-0.000106697093},{0.000144521796,4.31753112e-05,-6.27592311e-05},{6.52301558e-05,1.29603619e-05,-4.12577424e-05},{4.56135256e-05,2.45902452e-06,5.22303223e-05},{-6.70958199e-05,-2.97223931e-05,2.83499785e-05},},{{-0.00014288221,-6.44363178e-05,3.52248193e-05},{-6.30504277e-06,-3.06734374e-07,-1.76326954e-05},{2.00567095e-05,1.20649494e-05,-4.4583385e-06},{2.49067816e-06,8.70984432e-07,-4.39513752e-07},{5.76408227e-07,1.53723245e-08,1.9880425e-06},{-1.74465807e-06,-1.83796552e-06,3.85738733e-07},},{{-0.000175069702,-4.57955256e-05,0.000219416578},{-6.83682905e-05,-5.64273821e-06,-1.79024107e-06},{2.3776129e-05,1.15065397e-05,-4.83436818e-05},{-2.33483558e-06,6.30894147e-07,-8.99743912e-06},{1.04443744e-05,1.34047685e-06,-1.97609644e-06},{-2.67680103e-06,-2.63376989e-06,6.68381557e-06},},{{-0.00031696531,-0.00023193065,0.000171022394},{-4.95090128e-05,-1.79837376e-05,-5.52623551e-05},{4.90396337e-05,5.36132075e-05,-3.50081587e-05},{9.36127189e-06,5.217279e-06,-7.71208499e-06},{7.64462718e-06,4.0161186e-06,7.54608889e-06},{-3.2772101e-06,-9.8198846e-06,4.44365121e-06},},{{-0.00011173782,-5.9887424e-05,0.000198274709},{-5.59831776e-05,-1.13908817e-05,7.87661528e-06},{8.53458688e-06,1.28516896e-05,-3.95860845e-05},{-3.77377333e-06,-3.62424519e-08,-6.28839233e-06},{7.36394958e-06,2.18561225e-06,-3.12576601e-06},{-6.00228107e-08,-2.53067415e-06,4.71777296e-06},},},}};
  
  
  vector<vector<vector<vector<vector<double> > > > > delTAim = {{{{{9.96025979e-25,2.22578591e-23,1.45288138e-22},{-8.31337444e-22,-2.34120295e-22,-1.89601932e-22},{1.22194919e-05,5.82114783e-05,1.35088932e-06},{-5.21254996e-23,-6.76244278e-24,1.08988814e-22},{1.19558242e-06,-4.07692075e-06,-1.79956438e-06},{7.51759939e-06,3.11113009e-05,1.19558242e-06},},{{-1.33855452e-22,-7.35946799e-25,-9.51930419e-22},{3.03056714e-22,8.18516088e-23,1.69136362e-21},{-3.29322437e-05,4.20905516e-05,1.36643584e-05},{-2.43335156e-25,1.00372548e-23,-3.69423753e-23},{8.95567341e-06,-5.50832563e-06,2.74851083e-06},{-1.89873118e-05,1.81066124e-05,8.95567341e-06},},{{-2.99696935e-23,-6.66256172e-23,-5.06857987e-22},{5.61211804e-22,4.79582848e-22,1.19262294e-21},{-6.60358827e-05,9.23113445e-05,2.69382591e-05},{-1.18861227e-24,8.06741806e-23,1.03448964e-22},{2.19923571e-05,-1.29492075e-05,7.48062683e-06},{-4.8746291e-05,4.98224561e-05,2.19923571e-05},},{{-3.53851507e-22,-6.81116424e-23,-1.13014433e-21},{-7.31120713e-22,2.0695027e-22,2.94484372e-21},{8.9488145e-05,5.62086546e-05,-4.54883749e-05},{9.01289371e-22,2.24990694e-23,2.78253765e-22},{-3.17704671e-05,-1.88273661e-05,-3.20104051e-06},{5.1206972e-05,1.72329069e-05,-3.17704671e-05},},{{9.21544585e-24,3.24553206e-24,2.13861172e-22},{-2.22911884e-22,-1.0248473e-22,-2.92288111e-23},{1.67390595e-05,2.2527841e-05,-4.26185874e-06},{-5.34013307e-24,-1.00395243e-23,-4.49107722e-23},{-2.00975053e-06,-2.74945423e-06,-1.40868939e-06},{7.07133296e-06,7.07264852e-06,-2.00975053e-06},},{{-2.39057672e-23,-1.85479385e-23,-1.178336e-22},{-5.62186409e-23,-6.74352598e-23,-1.47733587e-22},{-3.41294343e-06,5.31658615e-05,5.22345852e-06},{-3.39601729e-23,-6.99645889e-23,1.98166559e-22},{3.53007902e-06,-1.07894599e-05,-1.08385488e-06},{-1.7048763e-06,2.56529447e-05,3.53007902e-06},},{{4.22383245e-23,-5.71762854e-24,9.313861e-23},{-1.28355673e-23,1.16092628e-23,2.54600788e-23},{2.35956589e-05,1.48552351e-05,-4.34287186e-06},{-1.68828617e-23,-1.86238681e-24,6.87825883e-24},{-2.13708332e-06,-1.46247548e-06,-2.5718305e-06},{1.04135703e-05,3.87159719e-06,-2.13708332e-06},},{{-1.80770868e-22,-4.02553558e-23,-8.47374722e-22},{1.30400419e-22,8.5782316e-23,4.2206319e-22},{4.09690727e-05,8.64882139e-05,-9.90419948e-06},{-7.09027138e-22,2.18281097e-22,4.56110341e-23},{-6.84999079e-06,-2.0859376e-05,-5.59193474e-06},{2.56103278e-05,4.32010138e-05,-6.84999079e-06},},{{-5.4527921e-24,3.72308278e-24,7.91219978e-23},{-8.94060104e-23,-7.09508023e-24,4.54481338e-22},{-3.9058164e-05,3.621612e-05,2.27001748e-05},{9.87775781e-23,5.69052314e-23,1.14368426e-22},{1.34191253e-05,-5.71778627e-06,5.08558764e-07},{-1.92467258e-05,1.24319147e-05,1.34191253e-05},},{{2.33655107e-23,3.76968434e-22,-1.24625728e-22},{2.59983393e-22,1.86893058e-23,-6.2758548e-22},{2.21884718e-05,7.41210579e-05,4.60314238e-06},{7.04272488e-23,-1.52621022e-23,7.15763025e-23},{3.19858477e-06,1.63239445e-06,-2.21415812e-06},{1.18764377e-05,3.59870988e-05,3.19858477e-06},},{{9.02303402e-23,-1.68539655e-22,1.55073538e-21},{-4.44120307e-24,9.40934509e-23,-4.14162292e-21},{-9.49991879e-05,0.000103630871,1.17183231e-05},{-1.92523246e-22,-5.49060105e-23,2.4096291e-22},{7.39538637e-06,-1.11317027e-06,1.81663394e-05},{-6.91722938e-05,5.13793012e-05,7.39538637e-06},},{{5.19541389e-23,-2.02609066e-24,-6.75093762e-22},{-4.38650884e-22,-2.13233616e-22,2.08151385e-21},{4.12729963e-05,2.58896011e-05,-5.49646631e-06},{-7.91268825e-23,2.65631137e-23,5.50360668e-23},{-2.83005769e-06,-2.60828606e-06,-5.12814402e-06},{2.01269196e-05,7.58556579e-06,-2.83005769e-06},},{{-4.46933006e-24,-8.96564629e-24,-9.96437852e-23},{-7.95365457e-23,1.71869927e-23,1.48635126e-22},{1.05613558e-05,6.96765624e-05,1.21935516e-06},{-8.71169514e-23,-6.3199522e-23,1.5645684e-22},{1.29622572e-06,-1.24345406e-05,-2.46969586e-06},{7.99611311e-06,4.38843362e-05,1.29622572e-06},},{{-1.39289959e-22,-2.30843689e-22,3.34482342e-22},{-8.0638772e-22,1.48932525e-22,9.50145375e-23},{1.88979508e-05,1.51849787e-05,-7.79239231e-06},{-4.00184793e-24,-6.63818503e-25,-9.90067879e-23},{-1.85304104e-06,-1.37773511e-06,-4.89364551e-07},{3.80610822e-06,1.92143939e-06,-1.85304104e-06},},{{-2.81591284e-23,2.17651757e-24,3.85074879e-23},{1.17171994e-23,3.55129798e-25,-3.27228514e-24},{-2.02679731e-06,1.52409587e-05,6.06368233e-07},{-4.3786925e-24,3.8292799e-25,7.65610596e-24},{1.29612864e-07,-1.98663565e-08,1.34034541e-07},{-4.77921327e-07,2.62518671e-06,1.29612864e-07},},{{6.55496551e-24,1.98016516e-25,5.62732907e-24},{-6.96681661e-23,1.05731572e-23,1.44613513e-23},{5.5482491e-06,6.39571121e-06,-1.26960234e-06},{-4.07525435e-24,7.58910756e-25,5.49803527e-24},{-2.28096754e-07,-2.59435907e-07,-1.90819647e-07},{8.95854432e-07,7.51304774e-07,-2.28096754e-07},},{{2.13371729e-23,3.73440017e-23,-5.48754567e-24},{2.41769022e-23,8.08490178e-25,-1.84576462e-24},{2.48131021e-06,1.59195673e-05,6.95359105e-07},{9.42043633e-24,-1.47367546e-24,-1.77254763e-23},{1.7183044e-07,1.19221985e-07,-7.7450806e-08},{4.69942855e-07,2.7704336e-06,1.7183044e-07},},},{{{-1.39507553e-24,8.40025895e-24,-1.67699707e-23},{-8.011693e-22,-2.5425452e-22,-1.20362304e-22},{1.85344708e-07,5.63967621e-06,1.09985823e-06},{-2.96187676e-24,-9.39964318e-25,4.30231665e-23},{9.24690345e-07,-2.85248921e-07,-1.1138626e-07},{-1.93388144e-07,3.49212065e-06,9.24690345e-07},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-4.29675124e-23,-6.97734514e-23,-5.53825653e-22},{6.94414315e-22,4.99735199e-22,1.49117885e-21},{-6.65133374e-05,9.92904622e-05,2.30914229e-05},{-1.57021265e-23,1.02166804e-22,7.58829972e-23},{1.93301235e-05,-1.08467943e-05,7.98824433e-06},{-4.85645895e-05,5.16383613e-05,1.93301235e-05},},{{-3.57582868e-22,-6.67173467e-23,-1.10507766e-21},{-8.08529416e-22,3.15444871e-22,3.16685478e-21},{9.18380017e-05,5.63612252e-05,-3.87424973e-05},{9.58790846e-22,3.53010587e-23,2.70835945e-22},{-2.80978881e-05,-1.4750787e-05,-5.73036377e-06},{5.19583716e-05,1.72251907e-05,-2.80978881e-05},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-4.33417544e-23,-2.08386336e-23,-2.21980234e-22},{5.93106703e-23,2.61501665e-23,3.70843932e-22},{2.07747552e-06,1.62404917e-05,1.4955718e-06},{-3.81058309e-23,-4.33587973e-23,6.70011392e-23},{1.13222452e-06,-1.99200725e-06,-9.54543691e-07},{7.55452089e-07,8.84087013e-06,1.13222452e-06},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-1.7975077e-22,-4.11777959e-23,-7.7768473e-22},{1.37742888e-22,8.27345539e-23,5.81143739e-22},{4.33699481e-05,8.39529812e-05,-8.54624579e-06},{-7.2565971e-22,2.17518055e-22,3.63575478e-24},{-6.05549179e-06,-1.6235309e-05,-6.30105473e-06},{2.61391366e-05,4.1151913e-05,-6.05549179e-06},},{{-1.68207622e-24,2.75294252e-25,-1.90354354e-23},{8.09205311e-25,9.25228443e-23,4.98429601e-23},{-1.18714355e-05,1.30828063e-05,2.56645005e-06},{2.13988872e-23,-1.45400625e-24,6.43196783e-23},{1.83994227e-06,-1.23220999e-06,1.5763276e-06},{-6.95297983e-06,5.11482153e-06,1.83994227e-06},},{{-2.22844901e-23,3.45322125e-22,1.71108748e-22},{2.57620283e-23,-7.02622766e-25,-1.73726236e-22},{1.63522062e-05,5.97877377e-05,4.23253337e-06},{8.74119943e-23,-2.42705941e-23,4.30925103e-23},{2.82659179e-06,3.5416745e-06,-1.51332641e-06},{8.13406845e-06,2.8018751e-05,2.82659179e-06},},{{-7.45450659e-23,-1.12397431e-22,1.43170339e-21},{8.57968632e-23,1.00441609e-22,-3.92427849e-21},{-9.03665065e-05,0.000109857522,7.96615159e-06},{-1.31916354e-22,-5.93156603e-23,1.49007661e-22},{4.96170397e-06,1.16835275e-06,1.71529836e-05},{-6.54401362e-05,5.23014708e-05,4.96170397e-06},},{{3.63297123e-24,1.75444349e-25,-7.30675888e-23},{-4.98509823e-24,-2.40741602e-25,1.0026204e-22},{4.27882609e-06,2.53641518e-06,-1.91834996e-08},{-2.62458317e-24,3.01786594e-24,4.97393715e-23},{1.72315511e-08,-5.65983672e-07,-6.54148533e-07},{2.60813609e-06,9.45245505e-07,1.72315511e-08},},{{9.5738075e-24,4.74387346e-25,2.79435756e-23},{1.30981493e-24,-4.00037606e-25,-1.52564074e-22},{9.64106001e-06,5.94390918e-05,1.21575579e-06},{-7.67788232e-23,-7.54210571e-23,1.10448543e-22},{1.29331317e-06,-7.55893677e-06,-2.20713769e-06},{6.48960698e-06,3.66985131e-05,1.29331317e-06},},{{-1.68200382e-23,-2.65142291e-24,-7.01196501e-23},{1.33734262e-23,2.10811701e-24,5.57513576e-23},{2.57696212e-06,1.53209728e-06,-7.17160383e-07},{-6.00866487e-25,-5.69797308e-24,-6.09780474e-24},{-2.3468949e-07,-2.2591624e-07,-1.46336353e-07},{6.80814678e-07,2.69711699e-07,-2.3468949e-07},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},},},{{{{-5.81732155e-23,1.39157942e-22,-8.63639185e-23},{3.63802172e-22,2.34172631e-24,-7.10193537e-22},{3.81260202e-05,-5.9076065e-05,-9.15057467e-06},{7.22658049e-22,-1.62461978e-22,-3.1657387e-22},{7.76645405e-06,-1.05283128e-05,6.22381437e-06},{-2.54509065e-05,2.73407876e-05,7.76645405e-06},},{{-1.20446639e-23,-9.17252686e-24,1.55231271e-22},{1.57685284e-22,-6.26138648e-23,6.60694951e-22},{-2.85856671e-05,-7.61942124e-05,4.60029864e-06},{5.82264896e-23,1.69386875e-23,2.23050532e-22},{-3.5796896e-06,-1.21621039e-06,-4.63155065e-06},{1.7710606e-05,3.8644808e-05,-3.5796896e-06},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{5.97213738e-23,-4.84928017e-23,-3.739944e-23},{7.26409942e-23,-2.86467554e-22,4.35448304e-22},{7.89351663e-05,-4.90878512e-05,-4.11188995e-06},{-2.99479502e-22,-9.84010301e-24,4.01521607e-23},{3.48926872e-06,-3.83636777e-06,1.26895443e-05},{-4.04861968e-05,1.47457392e-05,3.48926872e-06},},{{8.03106976e-25,1.99708514e-22,-9.59966684e-23},{4.0542111e-22,-6.16681128e-23,4.32352252e-23},{1.04601842e-05,-6.47052204e-05,3.48795594e-06},{-7.04881705e-23,-1.20851782e-23,8.40011026e-23},{-2.83628631e-06,7.5802679e-07,1.78476314e-06},{-6.57012709e-06,3.18296828e-05,-2.83628631e-06},},{{8.60850082e-23,-3.5921438e-22,-1.00766153e-21},{2.7572145e-21,7.18544079e-22,-3.27035014e-21},{9.48495581e-05,5.9471825e-06,-3.78760402e-05},{5.70008278e-22,1.32744668e-22,6.56936765e-22},{2.71892362e-05,2.17783512e-06,1.45836524e-05},{-4.53836362e-05,-1.76326993e-05,2.71892362e-05},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-5.87727385e-24,6.15349454e-25,3.82500887e-23},{-6.8690461e-24,7.1918782e-25,4.47046759e-23},{-6.57389863e-06,-3.1208094e-05,-5.84996702e-07},{-7.76492882e-24,1.80711966e-23,6.21674399e-23},{5.15516493e-07,1.91261578e-06,-1.02962932e-06},{4.19805471e-06,1.46091035e-05,5.15516493e-07},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{-6.78007196e-23,-2.14430707e-23,-4.59758986e-22},{6.47571281e-22,-1.09086435e-24,-1.90627106e-21},{5.53824113e-05,-1.96815704e-05,-1.46920442e-05},{3.84803792e-22,5.06179311e-23,-2.04105328e-22},{8.98897194e-06,-1.39407556e-06,6.35201456e-06},{-2.38559364e-05,1.68551486e-06,8.98897194e-06},},{{4.62219037e-23,1.88203043e-22,2.05058656e-22},{1.03737484e-22,6.68312775e-23,6.46012608e-22},{4.60041723e-05,-8.27002014e-05,-2.42463006e-06},{-2.37770338e-22,-6.48690537e-23,2.22578143e-22},{2.22580736e-06,-8.88865223e-06,1.0670566e-05},{-3.6904573e-05,4.88224995e-05,2.22580736e-06},},{{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},},{{4.43337574e-23,-1.81371271e-23,5.6247046e-23},{-6.28732626e-23,4.46596359e-22,-2.76955275e-24},{9.19343755e-06,-3.04554427e-05,-2.84533165e-06},{3.73552217e-25,-1.92641744e-24,1.48567375e-23},{9.94249977e-07,-2.72026633e-06,4.76113763e-07},{-2.46558149e-06,5.16331509e-06,9.94249977e-07},},{{1.09237184e-22,1.33285619e-23,6.98043774e-22},{6.31857808e-23,-2.6631835e-22,-1.6165123e-23},{5.71399478e-05,-1.71063514e-05,-8.61320479e-06},{1.14695884e-23,-1.15069484e-23,-1.14040941e-22},{3.10226277e-06,-9.49239653e-07,4.18936404e-06},{-1.2764986e-05,8.55794352e-07,3.10226277e-06},},{{3.46981907e-24,9.92212307e-25,2.39903555e-23},{-1.07687621e-23,-2.78671538e-24,-4.7515003e-24},{1.57759717e-05,-1.08837518e-05,-7.83539892e-06},{3.81612206e-23,1.1186179e-23,-2.56160561e-23},{2.1852657e-06,-7.35403218e-07,1.30111034e-07},{-3.2455059e-06,1.24382877e-06,2.1852657e-06},},},{{{-1.76655464e-22,1.24966424e-22,-1.1403091e-22},{1.34612639e-22,-1.19161743e-24,-7.28192814e-22},{4.06086783e-05,-4.36604043e-05,-1.18266924e-05},{7.78795673e-22,-1.67302276e-22,-2.98540777e-22},{9.67641945e-06,-1.23571988e-05,6.31265453e-06},{-2.67996341e-05,2.09502909e-05,9.67641945e-06},},{{-2.74745495e-22,-3.83285551e-23,-1.71667744e-23},{1.31694042e-22,-1.39922941e-22,8.35911605e-22},{-2.05339797e-05,-5.7895076e-05,7.88761745e-06},{1.43833061e-22,1.92080964e-23,2.35317226e-22},{-5.43658363e-06,-3.12463685e-06,-3.91521742e-06},{1.41684196e-05,3.260325e-05,-5.43658363e-06},},{{-6.97698864e-23,-2.76389232e-23,1.14261961e-22},{-8.24744452e-23,3.2542538e-23,-7.35909274e-22},{-3.78110601e-06,-3.29341558e-05,3.4578675e-06},{2.34814085e-23,-3.00961417e-24,-3.94744313e-23},{-2.22354568e-06,-3.18871191e-06,-5.24042791e-07},{2.49877034e-06,1.73504788e-05,-2.22354568e-06},},{{6.83626113e-23,-6.99107655e-23,-1.23952657e-22},{4.21752483e-22,1.38549279e-22,1.9981441e-23},{1.79338161e-05,-1.13366426e-05,3.22611586e-08},{-2.65224915e-23,-5.09410112e-24,1.00969042e-22},{-1.60127999e-07,-6.25170379e-07,2.30958846e-06},{-7.78716053e-06,3.3819897e-06,-1.60127999e-07},},{{-6.85244343e-23,3.82551115e-22,-3.87931416e-22},{9.59051658e-23,-3.39749354e-22,1.19088208e-21},{7.53305423e-05,-2.99972208e-05,-8.68660567e-06},{-2.63520067e-22,-2.0218447e-23,1.09769424e-22},{5.6987067e-06,-5.24628805e-06,1.30529446e-05},{-3.91301968e-05,8.32865539e-06,5.6987067e-06},},{{4.41052105e-24,2.67624556e-22,-3.00957858e-22},{2.93414636e-22,-4.66286835e-23,2.85187545e-22},{1.57614801e-05,-5.22305019e-05,3.85706468e-06},{-2.25270611e-23,-2.3936225e-23,1.37474942e-22},{-3.00195783e-06,-1.59010326e-06,2.63101417e-06},{-9.70737381e-06,2.80145274e-05,-3.00195783e-06},},{{1.81528529e-22,-2.97207749e-22,-9.03525187e-22},{2.74739387e-21,7.12293354e-22,-3.39295844e-21},{9.43995893e-05,1.40838648e-05,-4.29103279e-05},{5.32075888e-22,1.07810384e-22,6.55113947e-22},{2.97365362e-05,2.3956214e-06,1.49350625e-05},{-4.43111223e-05,-2.09539946e-05,2.97365362e-05},},{{5.54158989e-25,-4.1572204e-23,-7.93550406e-23},{-1.1401934e-22,-1.38240089e-24,-4.19718355e-22},{1.76200209e-05,-2.10840297e-05,-1.52350447e-08},{-9.66209141e-24,2.64537186e-24,-1.39232495e-23},{-9.4171733e-08,-1.30655637e-06,2.48493627e-06},{-8.75231899e-06,8.34149721e-06,-9.4171733e-08},},{{1.81504545e-22,1.22671589e-23,4.82816794e-24},{-1.73538494e-22,4.51945791e-23,-7.08603385e-23},{-2.20711877e-05,-3.58643974e-05,2.66837038e-06},{1.64515022e-24,1.65709261e-23,-1.50339208e-23},{-1.02614954e-06,6.72332756e-07,-3.86237895e-06},{1.29761886e-05,1.63133721e-05,-1.02614954e-06},},{{1.12376136e-22,-1.43914123e-22,8.01001103e-23},{-1.68371165e-24,5.76416422e-23,2.07268461e-23},{1.74368954e-05,-1.74260054e-05,-8.75752032e-06},{2.08184089e-22,4.04007648e-23,1.85028556e-22},{5.02711726e-06,-5.0280341e-06,7.44536818e-07},{-7.72495381e-06,5.55021079e-06,5.02711726e-06},},{{1.34661897e-23,-3.61944625e-24,3.60975445e-23},{6.19316405e-23,5.49559968e-24,9.34077949e-23},{-1.102162e-06,-2.19948458e-05,2.8653586e-06},{-2.09248439e-23,7.98284698e-24,8.06555306e-23},{-1.54287908e-06,-4.15317284e-06,2.4994127e-07},{4.95764622e-07,9.73629485e-06,-1.54287908e-06},},{{-6.72086147e-23,-2.33886885e-23,-9.66713243e-22},{6.38072687e-22,-1.72858147e-22,-1.49744404e-21},{4.51999871e-05,-5.89479138e-06,-1.8743013e-05},{3.73909862e-22,4.03867749e-23,-2.01438199e-22},{1.08481328e-05,-1.88083451e-06,5.26770567e-06},{-1.96241624e-05,-2.31709153e-06,1.08481328e-05},},{{5.5387357e-23,1.85859656e-22,1.66249478e-22},{7.64627448e-23,3.57218269e-23,5.30914629e-22},{4.31753112e-05,-6.12949205e-05,-2.71981876e-06},{-2.72817271e-22,-4.32684859e-23,2.23383266e-22},{2.45902452e-06,-1.10864314e-05,1.0342324e-05},{-3.52532059e-05,3.94358434e-05,2.45902452e-06},},{{4.30522823e-23,-4.82194869e-23,-9.50717986e-23},{-1.74654679e-23,-5.4044899e-24,-7.78643073e-23},{1.20649494e-05,-6.08292834e-06,-2.16893956e-07},{-4.11810241e-24,-3.60308554e-27,-9.41277153e-24},{1.53723245e-08,-1.95069239e-07,6.90596896e-07},{-2.21410234e-06,6.82255275e-07,1.53723245e-08},},{{-4.27829572e-23,-1.30224338e-23,-4.37314553e-23},{-2.30607987e-23,4.44718738e-22,1.62529047e-22},{1.15065397e-05,-2.043712e-05,-3.99001846e-06},{1.08922458e-24,2.41999555e-24,5.74144612e-24},{1.34047685e-06,-2.92325674e-06,4.9688755e-07},{-2.90956671e-06,3.5602825e-06,1.34047685e-06},},{{2.80643012e-22,-1.42285007e-22,5.13216749e-22},{-1.54605089e-23,-2.54126384e-22,6.73782716e-23},{5.36132075e-05,-7.13029222e-06,-1.27164228e-05},{-1.37890913e-24,-1.38585094e-23,-1.12063322e-22},{4.0161186e-06,-1.24267525e-06,4.18865172e-06},{-1.20210686e-05,-6.41870747e-07,4.0161186e-06},},{{2.10120914e-22,3.83968951e-25,-3.51689928e-22},{3.62182219e-22,-3.09003882e-23,3.55213435e-22},{1.28516896e-05,-1.24828613e-05,-8.05456971e-06},{6.95974799e-23,1.21775282e-23,2.18509813e-23},{2.18561225e-06,-2.07159634e-06,-5.34384685e-08},{-2.53972486e-06,1.55616633e-06,2.18561225e-06},},},}};
  
  vector<vector<vector<vector<vector<double > > > > > grad0_H = {{{{{-2.64320058e-05,0},{-3.75045835e-06,0},{-1.07116516e-05,6.16387717e-06},{6.084651e-06,0},{-3.7540019e-06,-8.1522246e-07},{-1.22803301e-06,2.46178443e-06},},{{-2.9537849e-05,0},{-1.44173953e-06,0},{-1.92990062e-05,-3.27339061e-07},{1.25895138e-05,0},{-1.90902381e-06,5.6741537e-07},{-1.25024581e-05,4.36651686e-07},},{{-0.000112746037,0},{-3.08426781e-05,0},{-5.540382e-05,1.61338664e-05},{2.10288853e-05,0},{-2.57867425e-05,1.26553265e-06},{-2.1634776e-05,1.11947461e-05},},},{{{-0.000469313501,0},{-0.00105307667,0},{0.000126505408,-0.00013427229},{-0.000237990296,0},{-0.000193565273,-0.000344751199},{0.000102834792,2.36638456e-05},},{{4.76294129e-05,0},{-0.000557295429,0},{-0.000312920988,0.000402285043},{-0.000214904912,0},{-0.000216369668,-8.90628148e-05},{-0.000277945531,-3.28551255e-05},},{{-0.000759189794,0},{-0.000576886069,0},{-0.000617303564,-0.000101615061},{0.000112322636,0},{-0.000290305962,-0.000191798356},{-0.000136475323,-0.00027819574},},},{{{-7.49039479e-05,0},{-6.31234473e-05,0},{-8.4450352e-07,-2.5973525e-06},{-4.40940192e-05,0},{-1.60605641e-06,-3.84276284e-06},{-3.72042873e-06,-9.60237577e-07},},{{-5.76439071e-06,0},{-4.45311592e-06,0},{5.32773676e-06,-2.28583147e-06},{-2.46740743e-06,0},{6.61204093e-06,-3.22015228e-06},{2.053663e-07,5.04388397e-08},},{{-5.55848534e-05,0},{-4.62819898e-05,0},{-1.31248231e-06,-6.64308845e-07},{-3.15031923e-05,0},{-2.28966369e-06,-1.16649511e-06},{-3.50947006e-06,-8.31330015e-07},},},{{{9.74662633e-06,0},{-3.69709953e-05,0},{1.19647691e-05,5.65392725e-06},{-1.03111003e-05,0},{-1.90102534e-05,3.16751264e-06},{9.13424929e-06,3.06668513e-06},},{{-1.73894401e-05,0},{-9.92689887e-06,0},{-7.69137482e-06,4.85619266e-06},{-6.1793976e-07,0},{-4.81756537e-06,2.98274481e-06},{-3.7649077e-06,5.2078174e-06},},{{-4.08587353e-05,0},{-3.35283258e-05,0},{-1.5480596e-05,1.3234963e-05},{-5.20042767e-06,0},{-1.54617487e-05,8.70933571e-06},{-6.40452879e-06,1.2938033e-05},},},{{{9.67718616e-06,0},{3.31171026e-06,0},{-9.43448595e-06,-1.75585115e-06},{-4.09219711e-06,0},{-3.34398403e-06,-1.44159736e-06},{6.37932804e-06,1.9826364e-07},},{{-7.38737062e-06,0},{-2.09295959e-07,0},{4.56000658e-06,-5.40436417e-07},{2.76920895e-06,0},{8.34239361e-07,-1.92276693e-07},{-3.27343654e-06,3.23173658e-07},},{{-4.8060974e-05,0},{-1.29163599e-05,0},{2.46063706e-05,2.2260977e-06},{4.94470937e-06,0},{6.66346792e-06,-4.45349768e-06},{-1.41687002e-05,-5.5933351e-06},},},{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}}},},{{{{4.13150863e-05,0},{-2.14335818e-05,0},{-1.52557985e-05,-1.12679298e-05},{-6.50871476e-07,0},{1.19570303e-05,9.23464242e-06},{9.94523893e-07,7.26748268e-06},},{{7.04626136e-05,0},{-3.41880802e-05,0},{-3.0081446e-05,-1.20562691e-05},{-3.81719708e-06,0},{2.15756439e-05,9.38311726e-06},{8.18090813e-06,7.9300686e-06},},{{8.27571535e-05,0},{-3.53218782e-05,0},{-3.62386649e-05,-2.09820886e-05},{-1.11687405e-05,0},{2.25016749e-05,1.57332364e-05},{9.2608331e-06,1.55582687e-05},},},{{{-2.54024531e-05,0},{2.36447137e-05,0},{1.5704561e-06,1.3800311e-05},{-3.20732891e-06,0},{-9.6084057e-06,-1.27703798e-05},{8.51750703e-06,-4.05680571e-06},},{{1.42249272e-05,0},{8.16552445e-06,0},{-1.01961651e-05,-3.54550533e-06},{-8.44080441e-06,0},{-3.63232639e-06,-3.32736331e-06},{4.86651375e-06,5.87360874e-06},},{{-7.27303118e-05,0},{3.43768795e-05,0},{1.99622895e-05,3.09265572e-05},{3.89442274e-06,0},{-1.35748437e-05,-1.91626897e-05},{7.12191898e-06,-1.67133445e-05},},},{{{5.89375089e-06,0},{9.53249387e-06,0},{7.43841847e-06,5.24413721e-06},{2.25417977e-06,0},{6.25409746e-06,-3.36389646e-06},{8.99172394e-06,4.59080889e-07},},{{-4.00129432e-06,0},{9.42018013e-07,0},{-1.00573593e-06,1.12913165e-06},{1.35171438e-06,0},{2.86930615e-07,-9.5959579e-07},{6.16614134e-07,-3.90152384e-07},},{{1.50260049e-05,0},{1.01471749e-05,0},{1.12350326e-05,1.672147e-06},{-7.17826549e-07,0},{6.94533216e-06,-3.25575542e-06},{9.03476669e-06,-2.295681e-06},},},{{{-1.28661747e-07,0},{3.89902399e-07,0},{-2.27319654e-07,-6.43727929e-08},{5.31608513e-07,0},{-6.01125675e-07,-8.85601556e-08},{5.984668e-09,-4.53957728e-07},},{{-1.14193493e-05,0},{-5.3386279e-06,0},{4.22987211e-06,-1.0021321e-06},{-2.20332573e-07,0},{2.02942287e-06,-1.65069077e-06},{-2.42438795e-06,-9.31218664e-07},},{{-1.11066432e-05,0},{-4.58658291e-06,0},{5.27197367e-06,-4.49090029e-08},{6.17077404e-07,0},{2.66324432e-06,-6.761327e-07},{-3.34004121e-06,-1.07313553e-06},},},{{{-1.49074043e-06,0},{-1.07201496e-06,0},{-5.23025863e-07,-3.56729651e-07},{-4.53093687e-07,0},{-7.1568317e-07,-5.26799844e-07},{-9.44041976e-08,-2.37685608e-08},},{{-8.05890934e-06,0},{-6.45461152e-06,0},{5.33446614e-07,-4.03580467e-07},{-4.00468777e-06,0},{4.88453558e-07,-6.30669705e-07},{-6.56389523e-07,-1.33355849e-07},},{{-7.06076116e-06,0},{-4.86107555e-06,0},{2.12702689e-06,2.99328784e-07},{-1.78605255e-06,0},{2.21420931e-06,1.9060721e-07},{-1.20941666e-06,-6.61713942e-07},},},{{{1.9180819e-05,0},{2.26584232e-05,0},{-4.47668613e-06,1.79096154e-05},{-7.65449935e-06,0},{-1.13157661e-05,5.88377112e-07},{-3.18070279e-06,-9.1504877e-06},},{{-7.56946338e-06,0},{3.41259487e-05,0},{1.32738566e-05,2.03506028e-05},{-4.05179981e-06,0},{-1.56928218e-05,-6.76736431e-07},{-1.00581437e-05,-5.91969048e-06},},{{8.84697953e-06,0},{2.00861274e-05,0},{1.38843209e-05,3.09632539e-05},{-1.24940468e-07,0},{-9.00016019e-06,-3.30215063e-06},{-1.60833304e-05,-1.05175087e-05},},},{{{1.0074271e-05,0},{1.92776419e-05,0},{5.63101522e-07,2.80930121e-07},{1.06437159e-05,0},{2.01651504e-06,-1.04863401e-05},{2.68177468e-06,-3.40795629e-07},},{{1.48030531e-06,0},{-6.93744294e-07,0},{-1.43615854e-06,-3.61110475e-06},{-2.33387848e-06,0},{-6.75279387e-07,-2.42759952e-06},{-2.3704588e-06,7.99793131e-07},},{{7.79815403e-06,0},{1.97813487e-05,0},{8.76213164e-06,1.55483942e-06},{1.27484314e-05,0},{7.39793899e-06,-1.09256928e-05},{2.97346052e-06,-6.34085965e-06},},},{{{8.29777799e-06,0},{2.10339951e-05,0},{1.97886927e-05,3.6502967e-05},{-2.73619869e-05,0},{-5.34168347e-06,-2.36728811e-05},{-5.13172009e-07,1.39268667e-05},},{{-1.86234422e-05,0},{3.1520183e-05,0},{2.49759149e-05,2.19149517e-05},{-2.52359485e-05,0},{-1.45321834e-05,-1.25863813e-05},{1.01187917e-07,1.22873844e-05},},{{2.96314362e-05,0},{-2.49185214e-06,0},{2.55629231e-05,2.85721781e-05},{-1.06839666e-05,0},{-1.44438015e-05,-1.94231047e-05},{1.82087441e-06,1.07566255e-05},},},{{{-5.15021731e-05,0},{7.97324916e-05,0},{6.05625216e-05,6.8876506e-05},{-5.9546626e-05,0},{-1.56892324e-05,-4.85715419e-05},{4.08335519e-05,1.15345822e-05},},{{6.12866946e-05,0},{-5.53069933e-06,0},{2.79122046e-05,1.89944079e-06},{-2.26925125e-05,0},{-4.70659156e-06,-5.63836176e-06},{1.25571794e-05,2.39501746e-06},},{{7.31353228e-05,0},{9.53138212e-06,0},{7.5953124e-05,3.33978985e-05},{-4.39545386e-05,0},{-2.85081448e-05,-2.77667416e-05},{3.90278616e-05,5.75068509e-06},},},{{{2.81749374e-06,0},{4.31326341e-06,0},{3.65148242e-06,4.87371555e-06},{-8.13786671e-06,0},{-1.37123308e-06,-4.1126245e-07},{-2.13447913e-06,3.7755228e-06},},{{-1.38213402e-05,0},{1.38766565e-05,0},{4.26275594e-06,7.84211398e-07},{-1.62138028e-05,0},{-3.88273035e-06,1.70254029e-06},{-7.52839053e-07,2.85490164e-06},},{{5.37864025e-06,0},{3.19579845e-06,0},{5.95936531e-06,5.87633674e-06},{-9.46668263e-06,0},{-3.37666093e-06,-1.50563868e-06},{-1.57009018e-06,4.66902775e-06},},},{{{1.21007006e-05,0},{3.03406286e-06,0},{-6.28626977e-06,-5.8077289e-07},{-1.87046783e-06,0},{-1.56469099e-06,7.53519885e-07},{3.6913297e-06,1.84833378e-06},},{{1.7125518e-06,0},{4.54349361e-06,0},{7.07773192e-07,2.12284532e-06},{2.40945341e-06,0},{-2.46316576e-06,6.43534054e-07},{-8.53668348e-07,-1.00930698e-06},},{{1.7992135e-05,0},{7.95347312e-06,0},{-8.47614195e-06,3.37414204e-07},{-4.20044878e-07,0},{-4.11020285e-06,1.80825944e-06},{4.40361249e-06,1.7875825e-06},},},{{{1.21753891e-05,0},{-7.56671179e-06,0},{-4.41073462e-06,-4.47094912e-06},{1.39896986e-06,0},{4.54024067e-06,4.60684484e-06},{-5.2668006e-08,3.79642879e-06},},{{1.65826879e-05,0},{-1.03529212e-05,0},{-6.06201755e-06,-5.99377791e-06},{1.99273187e-06,0},{6.27041151e-06,6.20209868e-06},{6.06999515e-08,5.13474082e-06},},{{1.62189989e-05,0},{-9.93951348e-06,0},{-5.94588804e-06,-6.00393641e-06},{1.60715018e-06,0},{6.03380948e-06,6.09969437e-06},{-5.02752732e-08,5.16215343e-06},},},{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},},{{{1.73740502e-05,0},{-1.25709757e-05,0},{-5.32245739e-06,-1.69026528e-06},{5.8620749e-06,0},{5.74203105e-06,2.01335057e-06},{1.11735515e-06,9.36984633e-07},},{{2.85751141e-05,0},{-2.08391072e-05,0},{-8.57522023e-06,-2.74557654e-06},{9.99474433e-06,0},{9.30285395e-06,3.27760708e-06},{1.72770031e-06,1.51555025e-06},},{{2.11402628e-05,0},{-1.55198978e-05,0},{-6.2580091e-06,-1.84897439e-06},{7.60093891e-06,0},{6.84980689e-06,2.19603702e-06},{1.19850849e-06,1.01545955e-06}}}}};
  vector<vector<vector<vector<vector<double> > > > > grad0_F = {{{{{0.000408880122,0},{6.71851371e-05,0},{0.000220400464,-8.02148793e-05},{-0.000131855915,0},{6.09365592e-05,-1.74931411e-05},{9.25444661e-05,-7.58534617e-05},},{{-0.000348615188,0},{-0.000160028528,0},{-0.000207029626,-2.33651694e-05},{2.39915961e-05,0},{-0.000123626973,1.02444505e-05},{-0.000140095743,-5.58330749e-06},},{{0.000142008283,0},{4.31141104e-06,0},{4.96009615e-05,-0.000112039941},{-6.03291772e-05,0},{8.4646323e-06,-9.68940132e-06},{-2.57025231e-05,-0.000102254618},},},{{{-0.00270546893,0},{-0.00339068182,0},{0.000108784321,-0.000859339582},{-0.00123125488,0},{-0.000610227813,-0.00101521522},{0.000463653828,-0.000278169022},},{{-0.00117623476,0},{-0.00186073505,0},{-0.00109222041,0.00111573627},{-0.000908968574,0},{-0.000924443838,0.000125091487},{-0.000790266422,0.000110993238},},{{-0.00398859373,0},{-0.00209706371,0},{-0.00230835675,-0.00102147374},{0.000489759251,0},{-0.00116904051,-0.000722188315},{-0.000307261025,-0.00107824},},},{{{-0.000268582031,0},{-0.000232684584,0},{-2.15870181e-05,-4.31356555e-05},{-0.000170374525,0},{-2.6952047e-05,-5.91766199e-05},{1.80399749e-06,2.39186099e-06},},{{-0.00028472263,0},{-0.000245857704,0},{-4.29434724e-05,-1.89735807e-05},{-0.000179842211,0},{-5.48735447e-05,-2.62948647e-05},{-1.0575853e-05,3.97771199e-07},},{{0.000296195994,0},{0.000245694782,0},{-5.98171926e-05,-1.86518273e-06},{0.000166303269,0},{-7.21731061e-05,-7.4687389e-07},{2.01653568e-05,6.00477505e-06},},},{{{0.000136341891,0},{-0.000177032338,0},{0.000117394282,-3.78639596e-06},{-7.87178046e-05,0},{-7.29822126e-05,-9.29704622e-06},{6.78741078e-05,-1.63277104e-05},},{{-0.00026578014,0},{-0.000234310321,0},{-9.94064094e-05,8.52527603e-05},{-4.21583779e-05,0},{-0.000111045994,5.91391629e-05},{-4.14841419e-05,8.18005559e-05},},{{-2.79782724e-05,0},{-2.97564746e-05,0},{-3.1145694e-05,1.22036063e-05},{3.11429255e-05,0},{-2.80181555e-05,7.51795228e-07},{-2.4240438e-05,1.48140728e-05},},},{{{9.57181734e-06,0},{-9.6426676e-05,0},{-6.88277875e-05,-6.60457136e-05},{-0.000104218279,0},{-8.99028944e-06,-7.06995058e-05},{8.47724276e-05,2.97998895e-05},},{{7.99217171e-05,0},{1.05462254e-05,0},{-3.9112176e-05,-4.59010183e-06},{-2.53731629e-05,0},{-2.0410522e-05,-3.56270631e-06},{2.62086535e-05,1.68631842e-05},},{{0.000142165564,0},{5.33430237e-05,0},{-0.000114368838,-2.96750831e-05},{-2.20521418e-05,0},{-4.97241599e-05,-9.20953262e-06},{7.27210472e-05,7.14621527e-06},},},{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},},},{{{{-0.000277234075,0},{0.000140068047,0},{0.000107383133,8.17541251e-05},{1.02912553e-05,0},{-8.17008319e-05,-6.83984343e-05},{-1.36706467e-05,-5.56848489e-05},},{{-0.000499546004,0},{0.000239693558,0},{0.000228274825,7.45481009e-05},{3.23878722e-05,0},{-0.000164300503,-5.84021429e-05},{-8.17842369e-05,-5.38145176e-05},},{{-0.000487717431,0},{0.000220421664,0},{0.000215918512,0.000118095604},{5.14989048e-05,0},{-0.000145111342,-9.23318622e-05},{-6.16923433e-05,-8.87303898e-05},},},{{{-0.000150885253,0},{0.000125649207,0},{3.54986471e-05,5.8854585e-05},{-1.88560979e-05,0},{-6.22264993e-05,-5.7526707e-05},{1.46718007e-05,-2.78341406e-05},},{{0.000179174038,0},{-4.27121063e-05,0},{-5.28487767e-05,-8.32680904e-05},{-3.2966116e-05,0},{9.83411024e-06,3.27805566e-05},{-2.17145432e-05,4.8082313e-05},},{{-0.000471677627,0},{0.000151603052,0},{0.000194070426,0.000149425013},{4.97805784e-05,0},{-7.46660107e-05,-7.48704877e-05},{-3.91187192e-05,-0.000116494037},},},{{{7.3309606e-05,0},{1.4723856e-05,0},{4.25832797e-05,-8.14223567e-06},{-2.25416055e-05,0},{1.11057756e-05,-4.88378171e-06},{2.09447883e-05,-1.04317675e-05},},{{4.53275709e-05,0},{5.0047345e-07,0},{1.89580828e-05,-1.53722482e-05},{-1.7548603e-05,0},{2.37578817e-06,1.56252882e-06},{5.66414063e-07,-8.96727328e-06},},{{7.4254874e-05,0},{1.1550676e-05,0},{4.12226644e-05,-1.23723953e-05},{-2.37953694e-05,0},{8.61991066e-06,-3.85169987e-06},{1.71682407e-05,-1.38064396e-05},},},{{{2.74230138e-05,0},{1.91610188e-05,0},{-6.47964403e-06,5.37924436e-06},{7.94033381e-06,0},{-6.84815932e-06,6.27051405e-06},{1.65432467e-06,-2.87606509e-07},},{{2.78591176e-05,0},{1.97561926e-05,0},{-6.30288135e-06,5.48292386e-06},{8.62485863e-06,0},{-6.77854211e-06,6.49130834e-06},{1.41960382e-06,-2.16963958e-07},},{{3.36998794e-05,0},{2.5448443e-05,0},{-5.15103956e-06,8.45736666e-06},{1.24902593e-05,0},{-6.9922323e-06,9.57286644e-06},{-3.2372019e-07,-6.02086812e-07},},},{{{4.39634711e-05,0},{3.61534132e-05,0},{-5.15640165e-06,8.88738408e-07},{2.38384945e-05,0},{-6.0238256e-06,1.48511728e-06},{2.95709835e-06,8.82931535e-07},},{{2.27898283e-05,0},{1.87235501e-05,0},{-3.13641747e-06,5.19244896e-07},{1.23275438e-05,0},{-3.68462414e-06,8.86215491e-07},{1.3915632e-06,6.62758222e-07},},{{5.2963988e-05,0},{4.44541151e-05,0},{-3.86288198e-06,1.90780624e-06},{3.06665457e-05,0},{-4.65745977e-06,2.77867147e-06},{2.7425785e-06,4.5068593e-07},},},{{{3.2950333e-05,0},{5.28759711e-05,0},{-1.91011892e-05,3.0737677e-05},{-2.54342726e-05,0},{-2.6982412e-05,-6.30297173e-06},{5.00815525e-06,-1.98356567e-05},},{{-0.000112403792,0},{6.54461497e-05,0},{4.9997422e-05,7.08673414e-06},{-2.77644281e-07,0},{-2.83671847e-05,2.21537984e-06},{-1.68393335e-05,-5.23361403e-06},},{{-6.53261853e-05,0},{1.59646568e-05,0},{5.3261002e-05,4.49457686e-05},{2.00521809e-05,0},{-8.15206943e-06,-9.07016884e-06},{-3.02701969e-05,-2.5856878e-05},},},{{{0.000131095731,0},{5.62407523e-05,0},{8.78328357e-06,-5.02235374e-05},{-9.12939687e-07,0},{1.90549856e-06,-2.29426223e-05},{-1.53157616e-05,-6.41636889e-06},},{{7.14543232e-05,0},{2.82385109e-05,0},{2.81401898e-06,-2.85133881e-05},{-8.76477707e-07,0},{3.04922579e-07,-1.08159789e-05},{-1.01042365e-05,-1.46353857e-06},},{{0.000150260241,0},{6.282586e-05,0},{9.79045303e-06,-5.94550429e-05},{-5.16038377e-07,0},{3.28856557e-07,-2.61157986e-05},{-2.00005519e-05,-9.13377281e-06},},},{{{-7.81254843e-05,0},{9.50560382e-05,0},{4.96820974e-05,5.98112982e-05},{-6.89988535e-05,0},{-2.60861517e-05,-4.99347366e-05},{1.70033167e-05,1.17051542e-07},},{{-0.000101822851,0},{9.88610657e-05,0},{6.72686946e-05,1.56569304e-05},{-6.57793995e-05,0},{-5.26119994e-05,-1.10479501e-05},{1.36214703e-05,4.0529573e-06},},{{4.96719383e-05,0},{-5.08120337e-06,0},{5.55043367e-05,3.3964791e-05},{-1.47088051e-05,0},{-3.31146492e-05,-2.49534355e-05},{1.87453954e-05,1.24130316e-06},},},{{{-0.000850766182,0},{0.0005596435,0},{0.000156528747,0.000287026424},{-0.000201047015,0},{-9.18655507e-05,-0.000219328962},{6.26721413e-05,-7.21940619e-05},},{{-0.000166364369,0},{0.00019343912,0},{8.84399298e-05,-2.71845875e-05},{-0.000147739193,0},{-5.40997805e-05,-1.84595011e-05},{-4.3439445e-05,-6.43570071e-05},},{{-0.000468665644,0},{0.000253544874,0},{0.000221308597,0.000211537127},{-3.37660785e-05,0},{-0.000155807045,-0.000152554124},{5.49375916e-05,-0.000111424515},},},{{{7.5195671e-05,0},{-1.07067275e-05,0},{2.7919055e-05,2.81810426e-05},{-8.65877053e-06,0},{-5.47558004e-06,-6.24178497e-06},{1.41177691e-07,1.86158245e-05},},{{9.15821512e-05,0},{-2.54409123e-05,0},{2.72403806e-05,3.26361655e-05},{-8.50927139e-08,0},{-5.67166513e-06,-1.1722765e-05},{-1.93118304e-06,1.94715966e-05},},{{8.87275294e-05,0},{-1.19762104e-05,0},{3.05881461e-05,3.28530713e-05},{-7.32128165e-06,0},{-3.45996583e-06,-5.86921773e-06},{-7.42540048e-07,2.11596776e-05},},},{{{2.5519114e-05,0},{2.34907951e-05,0},{-6.75517513e-06,7.74383702e-06},{4.87849038e-06,0},{-2.15202003e-05,-3.1003486e-06},{8.10409346e-06,-3.00406069e-06},},{{-1.2320038e-05,0},{1.01818533e-05,0},{1.4878609e-05,6.2683948e-06},{1.12196774e-05,0},{-8.71783604e-06,-5.02219515e-07},{-9.99740921e-06,-2.58205555e-06},},{{-0.000104971349,0},{8.94101867e-06,0},{7.60459162e-05,2.87496163e-05},{4.55976396e-05,0},{-3.81328964e-06,1.09924272e-07},{-4.73481337e-05,-2.84950886e-05},},},{{{-1.55444235e-05,0},{9.69707808e-06,0},{5.56827677e-06,5.75218651e-06},{-1.84542927e-06,0},{-5.75569568e-06,-5.95503338e-06},{1.60936961e-07,-4.83132469e-06},},{{-2.07307566e-05,0},{1.30519962e-05,0},{7.60992506e-06,7.38514284e-06},{-2.68245253e-06,0},{-7.94486319e-06,-7.711102e-06},{-1.98490484e-07,-6.35426692e-06},},{{-1.84135075e-05,0},{1.12059536e-05,0},{6.75810018e-06,6.89136018e-06},{-1.67128043e-06,0},{-6.81343008e-06,-6.96069285e-06},{1.15706002e-07,-5.93588883e-06},},},{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},},{{{-5.24616474e-05,0},{3.844448e-05,0},{1.6395784e-05,5.53813953e-06},{-1.86606386e-05,0},{-1.81227482e-05,-6.63332447e-06},{-3.99159025e-06,-3.17748073e-06},},{{-0.000143607294,0},{0.000104953068,0},{4.60897183e-05,8.73622884e-06},{-5.05627359e-05,0},{-5.08971528e-05,-1.04918078e-05},{-1.2295782e-05,-4.71900587e-06},},{{-4.47678001e-05,0},{3.24623351e-05,0},{1.43407369e-05,5.33814205e-06},{-1.52152332e-05,0},{-1.56930399e-05,-6.30985672e-06},{-3.64559516e-06,-3.25581593e-06},},},}};
  
  vector<vector<vector<vector<vector<double> > > > > grad1_H = {{{{{-3.98870329e-05,0},{-8.59673014e-06,0},{-1.74089657e-05,6.1637618e-06},{7.09391486e-06,0},{-7.52926576e-06,-1.36826276e-06},{-4.41544027e-06,1.99187488e-06},},{{-6.33422238e-05,0},{-1.5595877e-05,0},{-3.72496072e-05,-3.67824178e-06},{1.40478117e-05,0},{-1.28973936e-05,2.75057698e-08},{-2.30704635e-05,-3.81151085e-06},},{{-0.000139136573,0},{-3.87776469e-05,0},{-7.01411687e-05,1.22353034e-05},{2.48162227e-05,0},{-3.21469542e-05,6.05715763e-07},{-3.06084646e-05,6.21589281e-06},},},{{{-0.000488123389,0},{-0.00107919134,0},{0.000125376709,-0.000136214282},{-0.000243595276,0},{-0.000198223441,-0.000351736196},{0.000103399706,2.3869752e-05},},{{5.56973726e-05,0},{-0.000570301053,0},{-0.000320186639,0.00040930171},{-0.00021834625,0},{-0.0002227591,-9.31541833e-05},{-0.000283388513,-3.71920266e-05},},{{-0.000779750031,0},{-0.000592009031,0},{-0.000633732614,-0.000104599949},{0.00011538263,0},{-0.000297400084,-0.000196350213},{-0.000140143497,-0.000286540542},},},{{{-4.47299244e-05,0},{-3.8292288e-05,0},{-5.94520003e-07,-1.69159237e-06},{-2.76833848e-05,0},{-9.11993161e-07,-2.43099483e-06},{-1.76266951e-06,-4.48961914e-07},},{{8.83031825e-07,0},{8.14517814e-07,0},{4.6963042e-06,-3.92560224e-06},{7.71519109e-07,0},{5.96587237e-06,-5.39971758e-06},{1.38440332e-06,3.3579617e-07},},{{-2.83447923e-05,0},{-2.38520475e-05,0},{-6.42397514e-07,2.60780573e-07},{-1.66729435e-05,0},{-1.14732545e-06,2.42703908e-07},{-1.69836869e-06,-5.24816059e-07},},},{{{1.48590736e-05,0},{-3.60424037e-05,0},{1.38509822e-05,5.27877719e-06},{-9.24521226e-06,0},{-1.91892715e-05,2.46644007e-06},{1.01470614e-05,2.47247448e-06},},{{1.75651678e-06,0},{-5.93218286e-06,0},{5.2635252e-07,1.21943132e-06},{9.30965509e-07,0},{-4.17113793e-06,-5.23417433e-08},{8.63770741e-08,1.14774059e-06},},{{-1.58588938e-05,0},{-3.10823617e-05,0},{-4.77847034e-06,1.00198633e-05},{-2.62328877e-06,0},{-1.63911822e-05,5.19336484e-06},{-9.72937916e-07,8.85691752e-06},},},{{{2.52137146e-05,0},{4.91355263e-06,0},{-1.55127795e-05,-1.97565722e-06},{-7.66653589e-06,0},{-5.41028146e-06,-1.05212064e-06},{1.10491856e-05,3.28756656e-06},},{{-9.92851911e-06,0},{-3.37720962e-06,0},{3.05486356e-06,-3.04740366e-06},{4.14343688e-07,0},{1.12101038e-06,-2.22512335e-06},{-1.51159646e-06,6.82161984e-07},},{{-3.61906017e-05,0},{-1.18618885e-05,0},{1.945177e-05,1.64173614e-06},{2.10277727e-06,0},{4.71617e-06,-4.49734277e-06},{-1.00322279e-05,-3.4268945e-06},},},{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},},},{{{{1.48128475e-05,0},{-7.46052841e-06,0},{-5.51032451e-06,-5.21295125e-06},{-6.26540992e-07,0},{4.21961143e-06,4.3112908e-06},{2.77605566e-07,3.68685862e-06},},{{1.44718103e-05,0},{-6.83018364e-06,0},{-5.03802625e-06,-8.36298676e-06},{-1.24496816e-06,0},{3.47883031e-06,7.01852428e-06},{-4.8827133e-07,6.45293434e-06},},{{2.50243629e-05,0},{-1.01270714e-05,0},{-1.05402787e-05,-1.00003616e-05},{-4.26181046e-06,0},{6.13262351e-06,7.77205649e-06},{1.75683294e-06,7.88694825e-06},},},{{{-1.39828061e-05,0},{1.17523357e-05,0},{7.38656289e-07,9.82555977e-06},{2.14403419e-06,0},{-5.43921454e-06,-6.50609967e-06},{6.62909605e-06,-3.89801805e-06},},{{1.10183496e-05,0},{4.74684519e-07,0},{-7.74689334e-06,6.48400565e-08},{-8.48938036e-07,0},{3.03368907e-07,-1.10456697e-06},{5.92440323e-06,2.24512663e-06},},{{-0.000106118075,0},{2.17304915e-05,0},{3.68594504e-05,4.44613313e-05},{2.0190188e-05,0},{-6.15140687e-06,-1.56071564e-05},{5.0114496e-06,-2.93156422e-05},},},{{{3.35946299e-05,0},{7.57923892e-06,0},{1.87370813e-05,-3.43668771e-06},{-8.67867224e-06,0},{6.3800174e-06,-1.00224716e-06},{9.52979507e-06,-3.57592664e-06},},{{1.81630668e-05,0},{3.16372757e-06,0},{9.69214356e-06,-3.45310858e-06},{-5.44789296e-06,0},{2.79703294e-06,-6.12705256e-07},{4.04417996e-06,-3.34084332e-06},},{{3.94929475e-05,0},{9.37967843e-06,0},{2.1139814e-05,-6.27938923e-06},{-9.8214504e-06,0},{7.95221153e-06,-1.19436343e-06},{9.59797844e-06,-6.23084793e-06},},},{{{5.04391029e-06,0},{3.49495809e-06,0},{-1.48338475e-06,7.73180207e-07},{1.53100489e-06,0},{-1.43471646e-06,1.00291478e-06},{5.01751823e-07,-1.44462415e-07},},{{1.32401014e-05,0},{8.57832845e-06,0},{-3.43611574e-06,2.22200427e-06},{3.21380397e-06,0},{-2.88259814e-06,2.83384048e-06},{1.19316979e-06,2.31700218e-07},},{{1.29736678e-05,0},{8.55547685e-06,0},{-2.88114995e-06,2.4235282e-06},{3.37483382e-06,0},{-2.44829037e-06,3.02852012e-06},{8.11697167e-07,3.7368915e-07},},},{{{1.3072114e-05,0},{1.07971909e-05,0},{-1.5175138e-06,1.75052098e-07},{7.23733312e-06,0},{-1.74591416e-06,3.31838545e-07},{8.64617333e-07,3.20018819e-07},},{{9.47922878e-06,0},{7.76082175e-06,0},{-1.32567382e-06,3.4915887e-07},{5.09562103e-06,0},{-1.5108537e-06,5.5600246e-07},{6.29775497e-07,2.08012079e-07},},{{2.65323332e-05,0},{2.19471186e-05,0},{-2.28295502e-06,9.68435745e-07},{1.47367634e-05,0},{-2.52560227e-06,1.50172651e-06},{1.61086737e-06,4.75958328e-07},},},{{{2.69873968e-05,0},{6.77221979e-06,0},{-1.52566733e-05,1.04999089e-05},{-8.65208459e-06,0},{-5.58873952e-06,-1.65619339e-06},{3.47258892e-06,-9.77571536e-06},},{{9.43607221e-06,0},{4.14628529e-05,0},{1.04699981e-05,3.16643264e-05},{-9.39117687e-06,0},{-1.88257293e-05,4.56496687e-06},{-1.74993244e-05,-1.16999941e-05},},{{2.60364867e-05,0},{4.33860461e-06,0},{4.48789956e-06,3.14771738e-05},{-1.93463842e-06,0},{-3.82962542e-06,-4.03537095e-06},{-1.54918588e-05,-1.36126884e-05},},},{{{3.80738991e-05,0},{2.64030878e-05,0},{5.19619073e-07,-7.53544968e-06},{1.1066534e-05,0},{-1.58772978e-07,-6.82405696e-06},{1.50704411e-07,-9.63010916e-08},},{{2.85721829e-05,0},{1.17186581e-05,0},{1.14230279e-06,-1.33599765e-05},{-1.12658632e-06,0},{-3.58879792e-07,-7.30459646e-06},{-4.65097751e-06,-2.00807893e-06},},{{5.5019068e-05,0},{3.84182643e-05,0},{1.0326631e-05,-8.56199161e-06},{1.65845422e-05,0},{6.84910939e-06,-8.00176908e-06},{2.24598525e-06,-5.77109934e-06},},},{{{3.18183653e-05,0},{9.81607256e-06,0},{2.10596212e-05,3.12148861e-05},{-2.65093154e-05,0},{-3.37099309e-06,-1.71076721e-05},{4.30570922e-07,1.47825383e-05},},{{1.25680264e-05,0},{3.82500085e-05,0},{3.97547192e-05,2.50762907e-05},{-4.66250389e-05,0},{-1.07900678e-05,-6.0756546e-06},{8.03005327e-06,2.51506219e-05},},{{7.40757203e-05,0},{-2.76290591e-05,0},{2.39032337e-05,2.49424784e-05},{-4.80981348e-06,0},{-9.25864941e-06,-1.37490364e-05},{2.40497144e-06,1.33731111e-05},},},{{{-6.61392341e-05,0},{7.56875287e-05,0},{5.90289315e-05,6.48319075e-05},{-4.97299577e-05,0},{-2.04355127e-05,-4.32583205e-05},{3.97978935e-05,3.92010483e-06},},{{2.95797781e-05,0},{1.08968832e-05,0},{3.70417518e-05,2.46615148e-06},{-2.69459002e-05,0},{-1.31470701e-05,-6.21634117e-06},{1.29344878e-05,-8.36043636e-06},},{{3.6049076e-05,0},{5.03724752e-06,0},{7.07836849e-05,3.23430639e-05},{-2.11767657e-05,0},{-3.42024732e-05,-2.26055028e-05},{3.43203122e-05,-7.78191485e-06},},},{{{1.67018593e-05,0},{-5.64091056e-06,0},{5.86863611e-06,5.39511044e-06},{-8.268324e-07,0},{-1.8540595e-06,-2.34728674e-06},{7.08746836e-07,3.80113599e-06},},{{3.21296075e-05,0},{-2.4175035e-06,0},{1.31106148e-05,1.19838118e-05},{-6.13921385e-06,0},{-1.72687632e-06,-1.12293459e-06},{7.99475469e-07,8.96691666e-06},},{{3.34703687e-05,0},{-1.05562681e-05,0},{1.01986155e-05,1.21603527e-05},{-1.17945822e-06,0},{-2.82107786e-06,-4.95354363e-06},{-7.76627891e-07,7.44070337e-06},},},{{{1.57687403e-05,0},{1.84706837e-06,0},{-7.88437032e-06,-1.56544551e-06},{-3.17034243e-06,0},{-1.3634182e-06,9.48893263e-07},{4.99561407e-06,3.10651805e-06},},{{1.87323604e-05,0},{9.4378239e-07,0},{-1.01732605e-05,-2.32688248e-06},{-4.80821561e-06,0},{-4.13244956e-07,1.20829883e-06},{6.35646945e-06,3.89535782e-06},},{{2.09709863e-05,0},{1.05349593e-06,0},{-1.20192686e-05,-3.17443856e-06},{-5.58709227e-06,0},{8.30382477e-08,1.66697339e-06},{6.96416928e-06,4.6845521e-06},},},{{{8.7918324e-06,0},{-5.45007497e-06,0},{-3.19322631e-06,-3.23291214e-06},{9.84087105e-07,0},{3.2792191e-06,3.32317562e-06},{-3.47603619e-08,2.75256453e-06},},{{1.42500036e-05,0},{-8.88185504e-06,0},{-5.22556681e-06,-5.14854368e-06},{1.68421772e-06,0},{5.39754416e-06,5.31914947e-06},{6.82340654e-08,4.4250175e-06},},{{1.11843005e-05,0},{-6.83323684e-06,0},{-4.10668519e-06,-4.15269988e-06},{1.06940416e-06,0},{4.15522444e-06,4.20731698e-06},{-3.97451024e-08,3.57682825e-06},},},{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},},{{{7.01632462e-06,0},{-4.75903291e-06,0},{-2.46637088e-06,-1.15392341e-06},{1.70249488e-06,0},{2.5291889e-06,1.34390202e-06},{6.67640184e-07,7.39857056e-07},},{{1.15941616e-05,0},{-7.87868187e-06,0},{-3.99251129e-06,-2.71250796e-06},{2.85364006e-06,0},{4.06824169e-06,3.1718162e-06},{1.04398138e-06,1.76024089e-06},},{{8.36465933e-06,0},{-6.07699651e-06,0},{-2.50081274e-06,-1.30974533e-06},{2.86819646e-06,0},{2.71157881e-06,1.52989649e-06},{4.58058388e-07,8.19686744e-07},},},}};
  vector<vector<vector<vector<vector<double> > > > > grad1_F = {{{{{0.000302514559,0},{3.9041138e-05,0},{0.000161271288,-6.65120014e-05},{-0.000106177422,0},{3.77666051e-05,-1.25590581e-05},{6.30753874e-05,-6.05320032e-05},},{{-0.000232394979,0},{-0.000112647119,0},{-0.000137155634,-1.45438662e-05},{1.11354931e-05,0},{-8.67488987e-05,7.12754786e-06},{-9.28743032e-05,-1.81196439e-06},},{{0.000125382613,0},{3.72389172e-06,0},{4.4304759e-05,-9.46362809e-05},{-5.27053199e-05,0},{7.48965269e-06,-7.68692933e-06},{-2.10265401e-05,-8.52242107e-05},},},{{{-0.00280161613,0},{-0.0034725695,0},{9.50200001e-05,-0.000889692081},{-0.00124448111,0},{-0.00063003696,-0.0010404302},{0.000471995054,-0.000287851159},},{{-0.00125696785,0},{-0.00191229872,0},{-0.00113042785,0.0011330938},{-0.000927970208,0},{-0.000941414373,0.0001262328},{-0.000813732747,0.00011418586},},{{-0.00415673251,0},{-0.00215181768,0},{-0.00237999694,-0.00106086014},{0.000502314062,0},{-0.00119449536,-0.000736645973},{-0.000317231032,-0.00110385862},},},{{{-0.000387065183,0},{-0.000332954796,0},{-2.01791007e-05,-4.89395765e-05},{-0.00024085515,0},{-2.59015971e-05,-6.75348109e-05},{-3.56390972e-06,1.29324036e-06},},{{-0.000298605187,0},{-0.000257372285,0},{-4.15646783e-05,-1.71155368e-05},{-0.000187686418,0},{-5.33057948e-05,-2.38243322e-05},{-1.221043e-05,1.99622757e-08},},{{0.000235408788,0},{0.00019388053,0},{-6.25839632e-05,-5.4813796e-06},{0.000129379555,0},{-7.58792866e-05,-5.83335146e-06},{1.76342941e-05,5.86917629e-06},},},{{{0.000129441973,0},{-0.000190252971,0},{0.000116779295,-8.23558405e-07},{-8.26764012e-05,0},{-7.86951519e-05,-7.17788946e-06},{6.81971377e-05,-1.3764763e-05},},{{-0.000292623017,0},{-0.000246581348,0},{-0.000110829107,9.19225278e-05},{-4.42569017e-05,0},{-0.000116152302,6.41130209e-05},{-4.66888982e-05,8.87303451e-05},},{{-5.98096122e-05,0},{-3.88549465e-05,0},{-4.6194212e-05,1.8725274e-05},{3.08083043e-05,0},{-3.15605908e-05,5.61682853e-06},{-3.20512531e-05,2.21895011e-05},},},{{{4.57432219e-06,0},{-9.75478343e-05,0},{-6.68923442e-05,-6.6073346e-05},{-0.000103305864,0},{-7.85347673e-06,-7.05192977e-05},{8.28807673e-05,2.89694725e-05},},{{8.12073258e-05,0},{1.38119673e-05,0},{-3.57621857e-05,-1.29501237e-06},{-2.1873176e-05,0},{-1.98940311e-05,-6.09442844e-07},{2.27897509e-05,1.64238296e-05},},{{0.000145558725,0},{5.49924992e-05,0},{-0.000116372282,-2.98991836e-05},{-2.18518368e-05,0},{-4.96173444e-05,-8.09380873e-06},{7.28198786e-05,7.72012908e-06},},},{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},},},{{{{-0.000195179866,0},{9.94246067e-05,0},{7.17918066e-05,6.74105348e-05},{6.57319246e-06,0},{-5.52187455e-05,-5.69723696e-05},{-3.18750325e-06,-4.58028065e-05},},{{-0.000419742498,0},{0.000203055221,0},{0.000187422345,7.41145631e-05},{2.53889719e-05,0},{-0.000135945202,-5.93880123e-05},{-6.15439636e-05,-5.33429492e-05},},{{-0.000330128685,0},{0.000147677686,0},{0.000141896181,9.64377855e-05},{3.75499236e-05,0},{-9.39409252e-05,-7.61728384e-05},{-3.33753257e-05,-7.26824833e-05},},},{{{-0.00013580276,0},{0.000171298053,0},{3.35707248e-06,7.02294327e-05},{-4.05980581e-05,0},{-8.10805857e-05,-8.12689096e-05},{4.70267476e-05,-1.7640176e-05},},{{3.14540256e-05,0},{4.14723002e-05,0},{-3.70360279e-06,-3.25096849e-05},{-3.50460164e-05,0},{-3.21596627e-05,-6.11718575e-06},{-2.27547993e-05,1.60570896e-05},},{{-0.000740931867,0},{0.000286379793,0},{0.000273337057,0.000260523881},{6.5653607e-05,0},{-0.000136191911,-0.000144723251},{-1.85131546e-05,-0.000180028343},},},{{{2.50568547e-05,0},{1.13866815e-05,0},{2.28812071e-05,9.80112416e-06},{-6.58135445e-06,0},{6.12195906e-06,-6.89556666e-06},{2.0468682e-05,1.53043756e-06},},{{5.44308335e-05,0},{-6.15245449e-07,0},{2.22250264e-05,-2.0489499e-05},{-2.25039882e-05,0},{1.43582933e-06,1.02212227e-06},{-1.48242967e-06,-1.27536468e-05},},{{5.76193595e-05,0},{1.45133609e-05,0},{3.77268546e-05,-2.31056407e-06},{-1.59445771e-05,0},{8.47425479e-06,-6.85383158e-06},{2.20263777e-05,-1.03179434e-05},},},{{{2.95485977e-05,0},{1.76082028e-05,0},{-1.12522404e-05,2.69662478e-06},{4.60800533e-06,0},{-9.11363284e-06,3.76193348e-06},{5.63203573e-06,2.65099832e-07},},{{2.03701074e-05,0},{1.62070743e-05,0},{-2.49116209e-06,5.54699172e-06},{7.98654837e-06,0},{-4.84941802e-06,5.76650619e-06},{-8.86128833e-07,-3.96875166e-07},},{{1.42516169e-05,0},{1.39540895e-05,0},{1.66387954e-06,6.5461082e-06},{9.19298264e-06,0},{-1.97833482e-06,6.57629367e-06},{-3.50750316e-06,-1.28144194e-06},},},{{{3.80903493e-05,0},{2.99892459e-05,0},{-7.72606303e-06,-1.11695398e-06},{1.77550045e-05,0},{-8.86617676e-06,-1.12652624e-06},{4.09337181e-06,1.45573751e-06},},{{2.69297291e-05,0},{2.1506869e-05,0},{-5.29836185e-06,7.18699307e-09},{1.31475122e-05,0},{-6.32910635e-06,2.47954068e-07},{2.04734879e-06,9.53096928e-07},},{{4.2208661e-05,0},{3.57779787e-05,0},{-2.09051623e-06,1.47467888e-06},{2.51125745e-05,0},{-2.88076245e-06,1.94239743e-06},{2.09262137e-06,-4.94880717e-07},},},{{{0.000131655459,0},{1.16344878e-05,0},{-6.10307313e-05,3.27921671e-05},{-2.68412086e-05,0},{-1.07112598e-05,-1.37571866e-05},{1.94617237e-05,-1.83171187e-05},},{{-0.000119145894,0},{0.000107387304,0},{6.46364666e-05,6.70459939e-05},{-1.60559265e-05,0},{-5.92270027e-05,-2.02687925e-05},{-3.69018418e-05,-4.05847431e-05},},{{2.48419638e-05,0},{-4.37872582e-06,0},{2.24959275e-05,7.89418488e-05},{2.60734232e-05,0},{-5.56999859e-06,-2.22378543e-05},{-2.54999995e-05,-4.94561032e-05},},},{{{5.16510885e-05,0},{4.88283763e-05,0},{-1.20553014e-05,-4.29290128e-06},{1.88372311e-05,0},{-8.58063208e-06,-1.63556275e-05},{7.49083738e-06,9.51536075e-06},},{{0.000118333091,0},{2.951528e-05,0},{1.85864012e-06,-5.84796932e-05},{-1.90419614e-05,0},{-4.31369989e-06,-1.56038441e-05},{-2.54702997e-05,-2.99767705e-06},},{{1.58166297e-05,0},{3.58056785e-05,0},{1.72254641e-05,1.77400953e-05},{2.66557916e-05,0},{7.56409329e-06,-3.34143896e-06},{1.72169118e-05,-1.35065985e-05},},},{{{-0.000115733587,0},{0.000123546819,0},{2.41628497e-05,0.000110169934},{-8.96329915e-05,0},{-7.51250316e-06,-9.845711e-05},{3.74923488e-06,-7.72878436e-06},},{{-0.000304628988,0},{0.000283336943,0},{0.00011581098,9.63360804e-05},{-0.000187515784,0},{-9.01504926e-05,-7.83212705e-05},{7.89913287e-06,7.73222762e-06},},{{5.62923717e-05,0},{-1.2017442e-05,0},{5.36637766e-05,7.27762119e-05},{-1.52536465e-05,0},{-3.75888048e-05,-6.33310845e-05},{1.19509335e-05,-7.24640384e-06},},},{{{-0.000652430247,0},{0.000443912973,0},{0.000182989842,0.000257697338},{-0.000167451957,0},{-0.00010720504,-0.000195731461},{6.86264816e-05,-6.42412714e-05},},{{-6.74890698e-05,0},{0.000137147647,0},{0.000113014202,-1.82256842e-05},{-0.000131045326,0},{-6.78753802e-05,-1.7901391e-05},{-3.26603133e-05,-4.82959508e-05},},{{-0.000235541149,0},{0.00012689753,0},{0.000209130179,0.00014791424},{-7.88270417e-06,0},{-0.000142071208,-0.00010723891},{4.53571168e-05,-9.21362169e-05},},},{{{2.76122675e-05,0},{-1.59155402e-06,0},{9.16969939e-06,1.28038608e-05},{-4.77288818e-06,0},{-9.79913282e-07,-3.38084717e-06},{-2.54322051e-06,6.84084518e-06},},{{1.49221755e-05,0},{2.32376509e-05,0},{1.65431178e-05,1.15010353e-05},{-2.20633435e-05,0},{-2.33987455e-06,5.13339285e-06},{2.21835323e-08,8.82818511e-06},},{{6.76962506e-05,0},{-2.1376219e-05,0},{1.88631214e-05,2.33155346e-05},{3.05609515e-06,0},{-4.66367385e-06,-1.0463165e-05},{-1.15364501e-06,1.19352639e-05},},},{{{5.57079691e-05,0},{2.43315656e-05,0},{-2.77017817e-05,2.04007218e-06},{-7.13067018e-06,0},{-2.52052475e-05,-5.65253893e-06},{2.34264684e-05,2.77577469e-06},},{{-2.82507812e-05,0},{2.15745047e-05,0},{3.05801878e-05,1.60444687e-05},{2.42223914e-05,0},{-1.67719394e-05,-6.28427009e-07},{-1.95701154e-05,-1.02776085e-05},},{{-0.000106260928,0},{1.95650497e-05,0},{8.04627597e-05,3.57355831e-05},{5.37129941e-05,0},{-1.13577284e-05,1.58938406e-07},{-4.86437007e-05,-3.50839548e-05},},},{{{-1.31856497e-05,0},{8.20650633e-06,0},{4.71803169e-06,4.90109207e-06},{-1.52971458e-06,0},{-4.86500409e-06,-5.06300082e-06},{1.60209244e-07,-4.11229913e-06},},{{-2.09512057e-05,0},{1.31753376e-05,0},{7.68031626e-06,7.48720432e-06},{-2.68257788e-06,0},{-8.00861236e-06,-7.80845845e-06},{-1.7060165e-07,-6.43310662e-06},},{{-1.53667954e-05,0},{9.30295581e-06,0},{5.63491828e-06,5.79786435e-06},{-1.30486323e-06,0},{-5.65032666e-06,-5.82836119e-06},{1.41943283e-07,-4.99053394e-06},},},{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},},{{{-1.76098285e-05,0},{1.26326335e-05,0},{5.53975229e-06,4.28339098e-06},{-5.68265507e-06,0},{-5.97254576e-06,-5.08762476e-06},{-1.25139216e-06,-2.65752198e-06},},{{-0.000102233465,0},{7.44028985e-05,0},{3.29800803e-05,8.42950602e-06},{-3.53439242e-05,0},{-3.62502178e-05,-1.00613352e-05},{-8.83189399e-06,-4.86014465e-06},},{{-3.96211587e-06,0},{2.50310848e-06,0},{1.29870181e-06,4.03705495e-06},{-5.60572223e-07,0},{-1.21510958e-06,-4.71397839e-06},{-1.60305398e-07,-2.71945669e-06},},},}};
  
  vector<vector<vector<vector<vector<double> > > > > grad3_0_H = {{{{{3.81136107e-05,0},{-1.6999149e-05,0},{-1.7364332e-05,-7.8312759e-06},{-4.18827345e-06,0},{1.15151763e-05,5.97091428e-06},{5.69405528e-06,5.97391859e-06},},{{2.38393195e-05,0},{-1.12230241e-05,0},{-8.98012805e-06,-1.09072558e-05},{-2.01645964e-06,0},{6.23309104e-06,9.0491128e-06},{4.0337903e-07,8.32654581e-06},},{{4.94598006e-05,0},{-2.14727465e-05,0},{-2.1935551e-05,-1.30966721e-05},{-6.3268132e-06,0},{1.40748783e-05,1.00196577e-05},{6.01953173e-06,1.01461286e-05},},
  },{{{3.01716216e-05,0},{6.4460298e-06,0},{-1.89134989e-05,-3.80912454e-06},{-6.19428618e-06,0},{-3.72423165e-06,-2.83170357e-06},{1.14492467e-05,7.26532095e-06},},{{8.32285739e-05,0},{-9.96282547e-06,0},{-3.48800267e-05,-2.67441435e-05},{-1.348028e-05,0},{2.01388702e-06,7.32785591e-06},{6.54189623e-06,2.03387257e-05},},{{-5.93220883e-05,0},{1.47293218e-05,0},{1.75537224e-05,2.89165104e-05},{1.2654046e-05,0},{-4.28096403e-06,-1.07884324e-05},{8.16701751e-06,-1.75293543e-05},},
  },{{{5.89318589e-05,0},{7.70504706e-06,0},{3.01114221e-05,-1.25043758e-05},{-1.93667703e-05,0},{7.3960129e-06,-1.30359802e-06},{1.04983103e-05,-1.02087114e-05},},{{-3.24633021e-05,0},{-1.09424495e-05,0},{-2.03158798e-05,-6.02542517e-07},{6.3148057e-06,0},{-8.46481969e-06,1.8428285e-06},{-1.35668578e-05,1.6312165e-06},},{{-1.93050526e-05,0},{-1.25916614e-05,0},{-1.42589002e-05,-9.61633103e-06},{-1.7285724e-06,0},{-9.08418397e-06,7.51731443e-07},{-1.39240779e-05,-6.96273372e-06},},
  },{{{-0.000468699505,0},{-0.00105164347,0},{0.000127205279,-0.00013202539},{-0.0002307099,0},{-0.000196377415,-0.000341994469},{9.83381079e-05,2.78201936e-05},},{{6.92013311e-05,0},{-0.000561903361,0},{-0.000316762463,0.000406816224},{-0.000213608333,0},{-0.0002144873,-9.40881403e-05},{-0.000277088156,-4.0962741e-05},},{{-0.00075438348,0},{-0.000571708858,0},{-0.000611538238,-9.9896148e-05},{0.000107654935,0},{-0.000295202916,-0.0001870877},{-0.000134576881,-0.000272488171},},
  },{{{-8.61049351e-06,0},{-8.84782488e-06,0},{-4.61053403e-06,-6.50750995e-06},{-6.24243233e-06,0},{-2.13721485e-06,-6.7475151e-06},{4.98066757e-06,-7.81768115e-09},},{{1.96573931e-05,0},{1.27837672e-05,0},{-2.60693569e-06,4.55046807e-06},{4.80743119e-06,0},{-1.93324586e-06,5.35501258e-06},{3.95041163e-07,1.48221841e-06},},{{1.8669386e-05,0},{1.01473298e-05,0},{-7.23082314e-06,1.44641771e-06},{1.77371912e-06,0},{-5.01800066e-06,2.28434876e-06},{3.95118058e-06,8.18265714e-07},},
  },{{{-5.43832184e-05,0},{-4.63731943e-05,0},{-2.10832499e-06,-3.55425432e-06},{-3.31385892e-05,0},{-2.82884906e-06,-4.96736141e-06},{-1.92213588e-06,-1.09948762e-07},},{{-1.65570027e-05,0},{-1.42002089e-05,0},{1.8135289e-06,-4.18701022e-07},{-1.03226354e-05,0},{2.26940157e-06,-6.0048878e-07},{-5.98048611e-07,-1.3721569e-07},},{{1.93162684e-05,0},{1.49880278e-05,0},{-7.74126932e-06,-6.07366666e-07},{8.62157092e-06,0},{-9.18109221e-06,-5.27801927e-07},{1.95334516e-06,1.2065252e-06},},
  },{{{7.20619015e-05,0},{-7.84416583e-05,0},{-6.19912526e-05,6.24958196e-07},{-2.84771158e-05,0},{9.0118256e-06,-4.10998067e-05},{2.47252748e-05,-1.82422306e-05},},{{3.37422869e-05,0},{6.25332078e-05,0},{2.30822754e-05,6.27375206e-05},{-1.71491586e-05,0},{-1.96733534e-05,1.44757661e-05},{-3.7515978e-05,-1.64057902e-05},},{{0.000108889393,0},{-1.40379412e-05,0},{-5.07718408e-05,3.42824189e-05},{-1.24467524e-05,0},{-7.66027003e-06,-1.48911991e-05},{7.90593492e-06,-3.00253557e-05},},
  },{{{1.90246369e-05,0},{-4.10862154e-05,0},{1.66230205e-05,5.25692401e-06},{-9.58412268e-06,0},{-2.18629123e-05,2.22381878e-06},{1.15804535e-05,2.35389509e-06},},{{-1.58180167e-05,0},{-1.6523301e-05,0},{-6.59331219e-06,6.63238238e-06},{-5.99590429e-07,0},{-8.67535665e-06,3.61524304e-06},{-2.75829985e-06,6.37440818e-06},},{{-3.75651192e-05,0},{-2.79071213e-05,0},{-1.44095859e-05,1.1336997e-05},{-4.95753263e-06,0},{-1.28174939e-05,7.91933153e-06},{-5.99669666e-06,1.12157505e-05},},
  },{{{8.73649245e-05,0},{1.82620453e-05,0},{3.97110991e-06,-5.55244788e-05},{-2.17945277e-05,0},{-3.13050722e-06,-2.42835919e-05},{-2.33184841e-05,-9.72377874e-06},},{{2.24316724e-05,0},{-3.50174326e-05,0},{-2.38448057e-05,-4.70977195e-05},{-4.66217898e-05,0},{-2.40294349e-05,-7.83456607e-06},{-3.09425465e-05,6.93186178e-06},},{{0.000152999698,0},{8.17374747e-05,0},{1.45157097e-07,-5.71866172e-05},{1.78113726e-05,0},{-5.08635986e-06,-3.65085333e-05},{-1.77879218e-05,-6.36883279e-06},},
  },{{{8.79675446e-05,0},{-1.49421549e-05,0},{3.81996425e-05,4.37595473e-05},{-2.38774129e-05,0},{-1.03366876e-05,-2.25053047e-05},{3.67812657e-06,2.22635746e-05},},{{5.26285555e-05,0},{2.03499913e-05,0},{4.54091549e-05,3.73693683e-05},{-4.4381331e-05,0},{-1.05030344e-05,-1.21765475e-05},{5.90856466e-06,3.05565715e-05},},{{0.000101890001,0},{-9.01641347e-05,0},{-1.48541675e-05,6.67602422e-06},{4.81568124e-05,0},{1.59326021e-06,-1.10579906e-05},{-8.83477942e-06,-7.09632977e-06},},
  },{{{-2.75458812e-06,0},{5.18959809e-05,0},{9.16786546e-05,6.30299863e-05},{-5.46740318e-05,0},{-3.81333275e-05,-4.26210494e-05},{4.81751751e-05,1.56613845e-06},},{{9.66130209e-05,0},{-2.75652421e-05,0},{3.78444928e-05,-1.81271883e-05},{-1.71822931e-05,0},{-1.51746969e-05,7.41296886e-06},{5.32301148e-06,-6.6620947e-06},},{{0.000100648834,0},{-4.93861994e-05,0},{5.47216532e-05,-1.70080529e-05},{6.69130605e-06,0},{-3.25477134e-05,5.4184379e-06},{1.41606482e-05,-2.60469715e-05},},
  },{{{4.2367423e-05,0},{-5.36037124e-05,0},{9.87979878e-06,9.14838953e-06},{9.42212187e-06,0},{-1.63880873e-05,-2.59135214e-05},{4.15477667e-06,3.51526296e-06},},{{0.000120729865,0},{1.90304642e-05,0},{5.29909213e-05,4.42976627e-05},{-2.56637288e-05,0},{5.36506234e-06,9.83238603e-06},{6.14919106e-06,3.62900159e-05},},{{-4.05756039e-05,0},{-3.67106794e-05,0},{-2.80750164e-05,-2.12999722e-05},{3.02503492e-05,0},{-4.43099756e-06,-1.64348888e-05},{-1.09127219e-06,-2.09196277e-05},},
  },{{{3.91872064e-05,0},{-1.14312902e-06,0},{-2.48880385e-05,-8.17164302e-06},{-1.58314332e-05,0},{-4.95387209e-06,-3.38238597e-06},{1.88456029e-05,9.45108582e-06},},{{3.62659085e-05,0},{6.26854975e-06,0},{-1.42262804e-05,-2.44755433e-07},{-5.16282729e-06,0},{-2.58276318e-06,4.01781909e-06},{8.49458376e-06,6.88457383e-06},},{{3.38231309e-05,0},{7.2675469e-07,0},{-1.88127064e-05,-4.84060965e-06},{-1.09100847e-05,0},{-1.36238394e-06,9.39991011e-07},{1.20823584e-05,8.18490273e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{9.69891213e-06,0},{-6.00495345e-06,0},{-3.53288214e-06,-3.56205003e-06},{1.07217708e-06,0},{3.62339025e-06,3.65649611e-06},{-2.54257448e-08,3.04148834e-06},},{{1.34320026e-05,0},{-8.37501799e-06,0},{-4.92506759e-06,-4.85136813e-06},{1.59294165e-06,0},{5.08918638e-06,5.01409068e-06},{6.5266208e-08,4.16926883e-06},},{{1.27716028e-05,0},{-7.81698475e-06,0},{-4.68806383e-06,-4.73085103e-06},{1.24697077e-06,0},{4.7518697e-06,4.80092129e-06},{-3.6853818e-08,4.07289453e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{1.11910621e-05,0},{-7.73783503e-06,0},{-3.8560623e-06,-1.23310179e-06},{3.02732012e-06,0},{4.02069015e-06,1.44085134e-06},{1.05316766e-06,7.60099797e-07},},{{8.89164143e-06,0},{-5.93451525e-06,0},{-3.14666853e-06,-2.70300505e-06},{1.96270983e-06,0},{3.1626324e-06,3.15506721e-06},{8.53366045e-07,1.78654773e-06},},{{1.71747388e-05,0},{-1.24567996e-05,0},{-5.31700389e-06,-1.44780945e-06},{5.85445992e-06,0},{5.77435781e-06,1.70598702e-06},{1.16913433e-06,8.27916762e-07},},
  },},{{{{4.29546727e-05,0},{-2.22784959e-05,0},{-1.57943894e-05,-1.18924726e-05},{-6.97609341e-07,0},{1.23786788e-05,9.76020918e-06},{9.13725546e-07,7.65925673e-06},},{{7.40323915e-05,0},{-3.58388134e-05,0},{-3.17329467e-05,-1.24264678e-05},{-4.11150781e-06,0},{2.27038421e-05,9.6485331e-06},{8.79560937e-06,8.16265433e-06},},{{8.36324883e-05,0},{-3.55668761e-05,0},{-3.66249934e-05,-2.15589692e-05},{-1.14680652e-05,0},{2.26495965e-05,1.61755945e-05},{9.30766033e-06,1.60495191e-05},},
  },{{{-2.59807597e-05,0},{2.41235868e-05,0},{1.7776937e-06,1.41332818e-05},{-2.98308566e-06,0},{-9.93039579e-06,-1.29886586e-05},{8.59645208e-06,-4.32027843e-06},},{{1.6144049e-05,0},{8.16544342e-06,0},{-1.11287197e-05,-4.0888744e-06},{-8.86840796e-06,0},{-3.6715591e-06,-3.26633114e-06},{5.16284399e-06,6.37583578e-06},},{{-7.63515169e-05,0},{3.54438609e-05,0},{2.11708327e-05,3.24630714e-05},{4.50801657e-06,0},{-1.39614269e-05,-1.98415279e-05},{7.32446039e-06,-1.76990806e-05},},
  },{{{6.98069651e-06,0},{9.90062224e-06,0},{8.11175991e-06,5.16280043e-06},{2.02548705e-06,0},{6.52264602e-06,-3.45639379e-06},{9.39314336e-06,2.66153122e-07},},{{-4.59641898e-06,0},{8.93124633e-07,0},{-1.26473283e-06,1.23990272e-06},{1.51930458e-06,0},{2.17716739e-07,-9.92063204e-07},{5.5309886e-07,-3.64783777e-07},},{{1.70569476e-05,0},{1.06187376e-05,0},{1.22635215e-05,1.29461253e-06},{-1.20217756e-06,0},{7.33935716e-06,-3.31887594e-06},{9.42157791e-06,-2.63075773e-06},},
  },{{{-6.10387727e-07,0},{1.34207456e-07,0},{-8.5785118e-08,-1.12287666e-07},{4.80970597e-07,0},{-5.26249169e-07,-1.61149452e-07},{-7.03169287e-08,-5.0893961e-07},},{{-1.24735455e-05,0},{-5.86525869e-06,0},{4.61382001e-06,-1.09094271e-06},{-2.81479123e-07,0},{2.24002779e-06,-1.79548483e-06},{-2.63829728e-06,-1.01171236e-06},},{{-1.19862982e-05,0},{-4.99934848e-06,0},{5.66592853e-06,-7.36613346e-08},{6.1149966e-07,0},{2.89664004e-06,-7.48435517e-07},{-3.57313688e-06,-1.13248649e-06},},
  },{{{-2.05389417e-06,0},{-1.50669229e-06,0},{-4.62962879e-07,-3.72386758e-07},{-6.97198363e-07,0},{-6.59474224e-07,-5.57356648e-07},{-1.49282164e-07,-4.90184861e-08},},{{-8.94865548e-06,0},{-7.15645088e-06,0},{6.56683124e-07,-4.25851911e-07},{-4.42396955e-06,0},{6.19417065e-07,-6.71967418e-07},{-7.39890344e-07,-1.60269968e-07},},{{-7.61163591e-06,0},{-5.24944965e-06,0},{2.31375747e-06,3.28706922e-07},{-1.94538948e-06,0},{2.41747814e-06,2.15867185e-07},{-1.30043637e-06,-7.08816686e-07},},
  },{{{2.00979253e-05,0},{2.31647312e-05,0},{-5.22031984e-06,1.83810576e-05},{-8.2150571e-06,0},{-1.16214144e-05,3.81351366e-07},{-2.79254542e-06,-9.63488748e-06},},{{-8.29780365e-06,0},{3.6301821e-05,0},{1.39612344e-05,2.13963146e-05},{-4.40963014e-06,0},{-1.66867273e-05,-7.36020963e-07},{-1.04519755e-05,-6.26203404e-06},},{{9.92480313e-06,0},{2.04279824e-05,0},{1.45628301e-05,3.22006148e-05},{3.03280681e-07,0},{-9.17856625e-06,-3.3435954e-06},{-1.69454905e-05,-1.07168278e-05},},
  },{{{1.0061052e-05,0},{2.0056902e-05,0},{7.02683053e-07,4.50814255e-07},{1.12237775e-05,0},{2.14330447e-06,-1.10030866e-05},{2.85942249e-06,-5.18463239e-07},},{{1.09067076e-06,0},{-1.01429623e-06,0},{-1.48495403e-06,-3.72426907e-06},{-2.53875667e-06,0},{-6.92579226e-07,-2.51277142e-06},{-2.52166114e-06,8.05161374e-07},},{{7.87150552e-06,0},{2.04888829e-05,0},{9.26540382e-06,1.6779959e-06},{1.33181776e-05,0},{7.78009093e-06,-1.13569153e-05},{3.07715431e-06,-6.74461545e-06},},
  },{{{1.03517583e-05,0},{2.29258202e-05,0},{2.14784677e-05,3.8138952e-05},{-3.03070398e-05,0},{-5.13925143e-06,-2.38998372e-05},{-3.52484768e-07,1.52830608e-05},},{{-1.93657588e-05,0},{3.40716609e-05,0},{2.66903876e-05,2.29966168e-05},{-2.75693204e-05,0},{-1.50565526e-05,-1.2770508e-05},{3.46017524e-07,1.32465309e-05},},{{3.34037591e-05,0},{-4.70126221e-06,0},{2.61960202e-05,2.94376652e-05},{-1.00495505e-05,0},{-1.48014274e-05,-2.00230953e-05},{1.82599657e-06,1.11274969e-05},},
  },{{{-5.65598836e-05,0},{8.40369628e-05,0},{6.319292e-05,7.11579766e-05},{-6.18116134e-05,0},{-1.67957421e-05,-5.01546491e-05},{4.20486253e-05,1.08404399e-05},},{{6.37495274e-05,0},{-5.90103473e-06,0},{2.88065605e-05,1.13379494e-06},{-2.35121564e-05,0},{-4.94049627e-06,-5.37238195e-06},{1.250346e-05,2.12632244e-06},},{{7.5857111e-05,0},{8.87050555e-06,0},{7.86185603e-05,3.43588611e-05},{-4.44575605e-05,0},{-2.9814341e-05,-2.84701283e-05},{4.03234542e-05,5.51400074e-06},},
  },{{{2.07597296e-06,0},{5.00230064e-06,0},{3.65236622e-06,4.9490352e-06},{-8.81831232e-06,0},{-1.39800891e-06,-3.14771824e-07},{-2.31649032e-06,3.86507835e-06},},{{-1.52897037e-05,0},{1.52002309e-05,0},{4.46104305e-06,7.33844905e-07},{-1.75188257e-05,0},{-4.07690028e-06,1.94805935e-06},{-8.35317855e-07,3.00666938e-06},},{{5.50038378e-06,0},{3.01212262e-06,0},{6.14592906e-06,5.97404196e-06},{-9.65623969e-06,0},{-3.61166546e-06,-1.66851184e-06},{-1.54938077e-06,4.77934905e-06},},
  },{{{1.51865165e-05,0},{3.58247072e-06,0},{-7.64651908e-06,-6.89178082e-07},{-2.34877365e-06,0},{-1.89980981e-06,1.00951636e-06},{4.52990089e-06,2.38301562e-06},},{{3.38035228e-06,0},{5.13610579e-06,0},{3.68441584e-08,2.29144139e-06},{2.30961061e-06,0},{-2.77846114e-06,8.28725956e-07},{-4.46675845e-07,-9.1082629e-07},},{{1.95794977e-05,0},{8.30614266e-06,0},{-9.34798673e-06,1.83604363e-07},{-6.69501629e-07,0},{-4.26570575e-06,1.94558108e-06},{4.8855802e-06,2.05664913e-06},},
  },{{{1.27896442e-05,0},{-7.94869503e-06,0},{-4.63173617e-06,-4.6978676e-06},{1.46994923e-06,0},{4.7678555e-06,4.84087399e-06},{-5.78584497e-08,3.98780713e-06},},{{1.73721064e-05,0},{-1.08462794e-05,0},{-6.35243142e-06,-6.27683423e-06},{2.08850425e-06,0},{6.57118383e-06,6.49525844e-06},{6.72040581e-08,5.37875299e-06},},{{1.67241824e-05,0},{-1.02461338e-05,0},{-6.1324658e-06,-6.19218138e-06},{1.65172069e-06,0},{6.22137599e-06,6.28918954e-06},{-5.17014432e-08,5.32527914e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{1.78317737e-05,0},{-1.28844008e-05,0},{-5.47595655e-06,-1.78610845e-06},{5.97872273e-06,0},{5.90007508e-06,2.12628798e-06},{1.15260662e-06,9.96464617e-07},},{{2.99152822e-05,0},{-2.17920424e-05,0},{-9.00543096e-06,-2.87031072e-06},{1.04131207e-05,0},{9.75899452e-06,3.4256149e-06},{1.83118563e-06,1.58650419e-06},},{{2.12940222e-05,0},{-1.56307043e-05,0},{-6.30175811e-06,-1.91920966e-06},{7.65153373e-06,0},{6.89668689e-06,2.2772719e-06},{1.20335009e-06,1.06331065e-06},},
  },},{{{{-3.70478078e-05,0},{-7.70209797e-06,0},{-1.5984706e-05,6.11821488e-06},{6.72430212e-06,0},{-6.80926433e-06,-1.33272754e-06},{-3.75565675e-06,2.09266601e-06},},{{-6.16137962e-05,0},{-1.49858273e-05,0},{-3.64187022e-05,-3.74384242e-06},{1.38909697e-05,0},{-1.24118633e-05,5.1761872e-08},{-2.27157144e-05,-3.77755831e-06},},{{-0.000136222032,0},{-3.79165386e-05,0},{-6.86275931e-05,1.23408591e-05},{2.43995687e-05,0},{-3.1448319e-05,6.68854405e-07},{-2.98337892e-05,6.47360219e-06},},
  },{{{-0.000490172624,0},{-0.00108159812,0},{0.000126798888,-0.000136107272},{-0.000244727648,0},{-0.000198197751,-0.000351952999},{0.000103674606,2.51796087e-05},},{{5.56706503e-05,0},{-0.000571257871,0},{-0.000320096262,0.000410962794},{-0.000219294225,0},{-0.000222776501,-9.28250652e-05},{-0.000284232112,-3.62080644e-05},},{{-0.000781406619,0},{-0.000584020233,0},{-0.000635187877,-0.000105533126},{0.000118201303,0},{-0.000295702307,-0.000193506527},{-0.000140281237,-0.000286675504},},
  },{{{-4.55664768e-05,0},{-3.89735124e-05,0},{-4.80986563e-07,-1.68343209e-06},{-2.812488e-05,0},{-7.80990827e-07,-2.42547624e-06},{-1.83115536e-06,-4.61827838e-07},},{{-6.33333716e-07,0},{-4.31087124e-07,0},{4.71129218e-06,-3.93040028e-06},{-5.01885091e-08,0},{5.96489919e-06,-5.41515408e-06},{1.26884165e-06,3.11746983e-07},},{{-2.88565837e-05,0},{-2.42519589e-05,0},{-5.85434477e-07,3.08600371e-07},{-1.6906232e-05,0},{-1.08720544e-06,3.0327222e-07},{-1.76788337e-06,-5.37634882e-07},},
  },{{{1.19181666e-05,0},{-3.6815029e-05,0},{1.27590399e-05,5.73933274e-06},{-9.78879606e-06,0},{-1.92481224e-05,2.93669007e-06},{9.64879272e-06,2.99763721e-06},},{{-1.90974196e-08,0},{-6.44959319e-06,0},{-1.92123121e-07,1.56160756e-06},{7.10358973e-07,0},{-4.2897721e-06,2.39794132e-07},{-2.43956149e-07,1.52274913e-06},},{{-1.98095671e-05,0},{-3.14971466e-05,0},{-6.42509395e-06,1.05430437e-05},{-3.08832122e-06,0},{-1.62226076e-05,5.7690213e-06},{-1.78473342e-06,9.50225665e-06},},
  },{{{2.46460637e-05,0},{4.59816557e-06,0},{-1.50318949e-05,-1.88447751e-06},{-7.6583909e-06,0},{-5.23173486e-06,-1.08161559e-06},{1.07941866e-05,3.31265104e-06},},{{-9.1140246e-06,0},{-2.97627921e-06,0},{3.02742014e-06,-2.7931819e-06},{5.58069455e-07,0},{9.8693308e-07,-2.00243701e-06},{-1.55019257e-06,7.63732424e-07},},{{-3.7309001e-05,0},{-1.20917208e-05,0},{2.00162467e-05,1.69694012e-06},{2.31277663e-06,0},{4.92899558e-06,-4.5155054e-06},{-1.04294626e-05,-3.57640754e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},}}}};
  vector<vector<vector<vector<vector<double> > > > > grad3_0_F = {{{{{-0.000131647369,0},{7.36639216e-05,0},{3.98657233e-05,6.43150287e-05},{-3.69623159e-06,0},{-3.58226547e-05,-5.68384108e-05},{1.08014657e-05,-4.3719111e-05},},{{-0.000396043539,0},{0.000192998553,0},{0.000180397838,6.30501141e-05},{2.18812568e-05,0},{-0.000132370821,-5.08139784e-05},{-6.50375884e-05,-4.59797639e-05},},{{-0.000238834801,0},{0.000104158116,0},{0.00010271806,8.62785253e-05},{3.1935685e-05,0},{-6.68683731e-05,-6.86119702e-05},{-2.21749689e-05,-6.8674272e-05},},
  },{{{-5.06742949e-05,0},{0.00015330219,0},{-2.85302609e-05,3.78037723e-05},{-5.89001233e-05,0},{-7.47806154e-05,-7.42400958e-05},{4.8654571e-05,3.4236626e-06},},{{0.000100935105,0},{3.81108562e-05,0},{-2.62727653e-05,-5.81810248e-05},{-4.73742825e-05,0},{-3.9009028e-05,2.65986877e-09},{-2.48747562e-05,2.75483952e-05},},{{-0.000574935857,0},{0.000273567121,0},{0.000208993092,0.000209749036},{4.94122139e-05,0},{-0.000142492979,-0.000130151227},{-7.66046808e-06,-0.00014777068},},
  },{{{0.00031819382,0},{5.17175648e-05,0},{0.000183324554,-4.92318664e-05},{-0.000109554645,0},{4.40794199e-05,-2.17062346e-05},{8.87686754e-05,-5.49569357e-05},},{{-0.000265129848,0},{-0.000155869315,0},{-0.000170693944,-5.03467754e-05},{-7.10540657e-06,0},{-0.000117533827,1.10310639e-05},{-0.000137237346,-2.29843072e-05},},{{6.79852896e-05,0},{-1.01835075e-05,0},{1.80606826e-05,-9.19119859e-05},{-4.15960162e-05,0},{-7.87537556e-06,-1.27398359e-05},{-3.25134721e-05,-9.19225742e-05},},
  },{{{-0.00265259068,0},{-0.00337136622,0},{7.2532298e-05,-0.00082748257},{-0.00123147115,0},{-0.000614520324,-0.00101224447},{0.000442933923,-0.000298527138},},{{-0.0012303354,0},{-0.00182630623,0},{-0.0010740893,0.00107535795},{-0.000897814888,0},{-0.000907443799,0.000132600456},{-0.000771764216,0.000115509035},},{{-0.00391909308,0},{-0.00213849093,0},{-0.00230573516,-0.000991218908},{0.000485227433,0},{-0.00118026393,-0.000743800707},{-0.000320172632,-0.00107958399},},
  },{{{-0.00010580459,0},{-9.3947452e-05,0},{-2.88606398e-05,-5.21444264e-05},{-6.10365631e-05,0},{-1.40602996e-05,-5.66206916e-05},{3.23588938e-05,-7.43345765e-06},},{{5.06531156e-05,0},{3.24615659e-05,0},{-4.99638511e-06,1.77963044e-05},{7.61323451e-06,0},{-6.71061395e-06,1.83423856e-05},{-3.54040924e-06,1.75602879e-06},},{{8.4429916e-05,0},{5.72506357e-05,0},{-4.13333906e-05,3.61072811e-06},{2.39530208e-05,0},{-3.90060849e-05,7.60714628e-06},{1.84844117e-05,-8.41038717e-06},},
  },{{{-0.000265479947,0},{-0.000232168985,0},{-2.7334509e-05,-4.59553407e-05},{-0.000173139122,0},{-3.35662732e-05,-6.27734825e-05},{4.3057921e-06,3.44775037e-06},},{{-0.000239253082,0},{-0.000208907446,0},{-5.03228551e-05,-1.80153754e-05},{-0.000156197116,0},{-6.36177789e-05,-2.46210407e-05},{-7.72373474e-06,1.83854699e-06},},{{0.000236904903,0},{0.000196418682,0},{-5.41028551e-05,-4.77907811e-06},{0.000132846964,0},{-6.60482304e-05,-5.30535319e-06},{1.71796321e-05,3.9972828e-06},},
  },{{{8.92654901e-05,0},{-0.000180497453,0},{-0.000123332261,2.38281758e-06},{-0.000103064713,0},{-1.86257078e-05,-0.000110488948},{3.64436536e-05,-3.97932352e-05},},{{0.000170596387,0},{0.000177918685,0},{6.05453343e-05,0.000205883645},{-4.41269838e-05,0},{-4.83012756e-05,3.34702799e-05},{-9.80510181e-05,-3.63944371e-05},},{{0.00029159611,0},{1.50066712e-05,0},{-0.000100345557,0.000120682388},{2.35493518e-05,0},{-4.28455322e-05,-1.71137266e-05},{-8.64941181e-06,-9.1363893e-05},},
  },{{{0.000137886414,0},{-0.000171182513,0},{0.000116512945,-4.511313e-06},{-7.655862e-05,0},{-7.04927407e-05,-1.06073173e-05},{6.68869498e-05,-1.67876794e-05},},{{-0.000256808322,0},{-0.000230030884,0},{-9.59062172e-05,8.31471326e-05},{-4.14031953e-05,0},{-0.000109595349,5.72783048e-05},{-4.00418562e-05,7.95903668e-05},},{{-6.45751369e-06,0},{-3.09515141e-05,0},{-2.22114006e-05,1.0561075e-05},{3.43311803e-05,0},{-3.13586905e-05,-1.93157004e-06},{-1.95840882e-05,1.23840222e-05},},
  },{{{0.000261647553,0},{8.4953476e-05,0},{4.68074272e-05,-0.000141950212},{-5.46511533e-05,0},{1.81758534e-05,-8.87670064e-05},{-2.45021921e-05,-4.05114818e-05},},{{-0.000207168705,0},{-0.000287230331,0},{-0.000154000121,-0.000126516888},{-0.000210248729,0},{-0.000152528447,-2.14689436e-05},{-0.000110706743,2.22153165e-05},},{{0.000480829921,0},{0.000313406038,0},{3.47082125e-05,-0.000117843675},{0.000124278232,0},{7.69644338e-06,-9.23461573e-05},{-1.16906425e-05,-4.01084851e-05},},
  },{{{5.13018709e-05,0},{3.90008262e-05,0},{7.51948835e-05,0.00013026906},{-7.96772816e-05,0},{-3.35198227e-05,-0.000109455253},{2.39844533e-05,7.70538121e-06},},{{-0.000209790002,0},{0.000232766748,0},{0.000120734279,0.000133965595},{-0.000185076526,0},{-9.74803568e-05,-9.67787533e-05},{-1.70274335e-05,2.19159693e-05},},{{8.24541631e-05,0},{-0.000144312676,0},{-1.78211267e-05,2.9482844e-05},{8.50083028e-05,0},{-5.03951447e-05,-6.92158123e-05},{-1.22386634e-05,-6.00184855e-05},},
  },{{{-0.000339876379,0},{0.000358181102,0},{0.000318045272,0.000237062504},{-0.000224483228,0},{-0.00015417361,-0.0001927915},{0.000119552352,-6.29370146e-05},},{{-1.00002774e-05,0},{6.87049046e-05,0},{9.1955106e-05,-4.05158192e-05},{-9.49503259e-05,0},{-8.63405279e-05,-1.09443866e-05},{-5.69197309e-05,-4.47146428e-05},},{{-8.23838607e-05,0},{6.51670023e-06,0},{0.000203847368,3.4141358e-05},{4.591273e-05,0},{-0.000162972793,-7.00618681e-05},{2.82923457e-05,-0.000162497116},},
  },{{{1.52895285e-06,0},{-0.000196259104,0},{-7.90602462e-06,-7.54429167e-06},{3.49426972e-06,0},{-7.71489839e-05,-0.00010187237},{6.60983334e-06,-1.63104232e-05},},{{0.000231043699,0},{5.50614457e-05,0},{9.26532931e-05,0.000108756086},{-6.53417957e-05,0},{9.92638482e-06,2.24014769e-05},{-1.85077161e-05,7.6152545e-05},},{{-0.000154004447,0},{-0.000174148554,0},{-0.000127502682,-4.94642167e-05},{0.000101256139,0},{-4.26456451e-05,-8.32755449e-05},{-5.05474256e-05,-7.61857463e-05},},
  },{{{4.72323517e-05,0},{-7.78800848e-05,0},{-8.80060939e-05,-6.38465601e-05},{-0.000109689882,0},{-3.11615089e-05,-7.81856426e-05},{0.000103433682,3.02725498e-05},},{{2.71331274e-05,0},{2.39689538e-05,0},{6.06589707e-06,1.28356286e-05},{1.55751578e-06,0},{-3.17937241e-05,-5.15439564e-06},{-2.97380056e-06,5.14484608e-06},},{{-2.15997932e-05,0},{6.1307983e-05,0},{-5.34875404e-06,9.12287198e-06},{4.35438446e-05,0},{-4.9958447e-05,-9.61846465e-06},{4.17171286e-06,-3.7358012e-05},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{-1.20265562e-05,0},{7.47740043e-06,0},{4.30276867e-06,4.47899335e-06},{-1.37974314e-06,0},{-4.43225052e-06,-4.62287121e-06},{1.54149456e-07,-3.75831511e-06},},{{-1.99310851e-05,0},{1.25352833e-05,0},{7.30576356e-06,7.12264604e-06},{-2.55405e-06,0},{-7.61909473e-06,-7.42924608e-06},{-1.61758948e-07,-6.11940554e-06},},{{-1.37282913e-05,0},{8.28306134e-06,0},{5.03676088e-06,5.20294287e-06},{-1.11281534e-06,0},{-5.0337355e-06,-5.21504863e-06},{1.44688939e-07,-4.48173272e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{-1.52284184e-05,0},{1.08092789e-05,0},{4.93495745e-06,4.12354403e-06},{-4.66861276e-06,0},{-5.28555416e-06,-4.8938896e-06},{-1.19136533e-06,-2.59074106e-06},},{{-9.08546777e-05,0},{6.60561529e-05,0},{2.9353038e-05,8.46729204e-06},{-3.12739117e-05,0},{-3.22281903e-05,-1.00901068e-05},{-7.89164016e-06,-4.97281768e-06},},{{-2.11139691e-06,0},{1.1255022e-06,0},{8.27301617e-07,3.75528707e-06},{1.54036024e-07,0},{-7.14034732e-07,-4.3694084e-06},{-1.19526286e-07,-2.58542856e-06},},
  },},{{{{-0.000289040139,0},{0.000146286531,0},{0.000111531119,8.59821673e-05},{1.04186717e-05,0},{-8.50435431e-05,-7.19975636e-05},{-1.35911855e-05,-5.8521856e-05},},{{-0.00052744115,0},{0.000253006672,0},{0.00024145838,7.75512436e-05},{3.42509222e-05,0},{-0.000173756407,-6.06586102e-05},{-8.71046337e-05,-5.60032284e-05},},{{-0.000501810252,0},{0.00022634194,0},{0.000222219484,0.000122339352},{5.3608952e-05,0},{-0.000149017638,-9.56243752e-05},{-6.3404991e-05,-9.20563354e-05},},
  },{{{-0.000165198338,0},{0.000135759405,0},{3.88359275e-05,6.48875842e-05},{-1.97012774e-05,0},{-6.69579287e-05,-6.24424784e-05},{1.64787973e-05,-3.0756344e-05},},{{0.00019022472,0},{-4.59518948e-05,0},{-5.57428468e-05,-8.86990584e-05},{-3.48148993e-05,0},{1.06885198e-05,3.51287203e-05},{-2.35467539e-05,5.10246153e-05},},{{-0.000500241671,0},{0.000159946647,0},{0.000205941456,0.000158517108},{5.31580175e-05,0},{-7.86934879e-05,-7.91102794e-05},{-4.15242887e-05,-0.000123652523},},
  },{{{7.52304871e-05,0},{1.51904245e-05,0},{4.38377668e-05,-8.17693394e-06},{-2.31631958e-05,0},{1.14198059e-05,-5.11028919e-06},{2.16976181e-05,-1.06438469e-05},},{{4.78355195e-05,0},{4.67432624e-07,0},{1.99034301e-05,-1.63686145e-05},{-1.85300792e-05,0},{2.49788777e-06,1.71436382e-06},{4.41021058e-07,-9.50660019e-06},},{{7.50655105e-05,0},{1.15538431e-05,0},{4.17839226e-05,-1.24410621e-05},{-2.41794158e-05,0},{8.54335166e-06,-3.98448495e-06},{1.74390697e-05,-1.4021465e-05},},
  },{{{2.91511672e-05,0},{2.02476661e-05,0},{-7.05055237e-06,5.59329136e-06},{8.29778342e-06,0},{-7.32941114e-06,6.55521725e-06},{1.90709025e-06,-2.77233572e-07},},{{2.99483568e-05,0},{2.11632217e-05,0},{-6.87852368e-06,5.82095209e-06},{9.17735023e-06,0},{-7.32506174e-06,6.91164647e-06},{1.61606483e-06,-2.19788275e-07},},{{3.53746818e-05,0},{2.66725703e-05,0},{-5.49277306e-06,8.81926756e-06},{1.30638408e-05,0},{-7.38645591e-06,9.99520959e-06},{-2.70185554e-07,-6.37298922e-07},},
  },{{{4.63722572e-05,0},{3.81161324e-05,0},{-5.48056317e-06,9.23601485e-07},{2.5106355e-05,0},{-6.39638168e-06,1.55130041e-06},{3.14069398e-06,9.40442104e-07},},{{2.4323657e-05,0},{1.9975492e-05,0},{-3.3838697e-06,5.59646864e-07},{1.31401022e-05,0},{-3.97331529e-06,9.55866999e-07},{1.49073028e-06,7.12901977e-07},},{{5.52386031e-05,0},{4.63634555e-05,0},{-4.05541388e-06,1.98175037e-06},{3.19844708e-05,0},{-4.89221707e-06,2.88659232e-06},{2.86441365e-06,4.66995122e-07},},
  },{{{4.17265738e-05,0},{5.27266641e-05,0},{-2.32990029e-05,3.10253471e-05},{-2.67214899e-05,0},{-2.65932638e-05,-6.10873052e-06},{6.70791737e-06,-1.97624717e-05},},{{-0.000118017719,0},{6.95349104e-05,0},{5.20447662e-05,6.61906184e-06},{-8.7456339e-07,0},{-2.99025882e-05,2.74266987e-06},{-1.72388443e-05,-4.93690127e-06},},{{-7.15169911e-05,0},{1.66441586e-05,0},{5.66244327e-05,4.69851952e-05},{2.10817211e-05,0},{-8.86020001e-06,-9.94509038e-06},{-3.1847175e-05,-2.756225e-05},},
  },{{{0.000138655294,0},{5.92859331e-05,0},{8.96469383e-06,-5.33491648e-05},{-1.1872023e-06,0},{1.7996112e-06,-2.43356187e-05},{-1.63699382e-05,-6.59544549e-06},},{{7.60941425e-05,0},{2.99921124e-05,0},{2.79324946e-06,-3.04725061e-05},{-9.82838181e-07,0},{1.98112516e-07,-1.15388862e-05},{-1.08648074e-05,-1.43722893e-06},},{{0.000156773661,0},{6.54252081e-05,0},{1.01210954e-05,-6.21530346e-05},{-6.62996692e-07,0},{2.34984023e-07,-2.72766215e-05},{-2.09465057e-05,-9.51724903e-06},},
  },{{{-0.000103645876,0},{0.000115508539,0},{5.15218925e-05,6.5377396e-05},{-8.05207356e-05,0},{-2.73589004e-05,-5.53523984e-05},{1.74256316e-05,-8.61172154e-07},},{{-0.000119508485,0},{0.000112717766,0},{7.27086786e-05,1.44108967e-05},{-7.313721e-05,0},{-5.7355746e-05,-9.89750318e-06},{1.47292627e-05,4.52980702e-06},},{{5.96303007e-05,0},{-1.17316095e-05,0},{5.72059828e-05,3.65125269e-05},{-1.2000043e-05,0},{-3.4424157e-05,-2.7255384e-05},{1.91328052e-05,7.98023531e-07},},
  },{{{-0.000870392413,0},{0.000575541959,0},{0.000163032252,0.000295131282},{-0.000209199371,0},{-9.51291619e-05,-0.000225731626},{6.48782337e-05,-7.33639688e-05},},{{-0.00016340155,0},{0.000195718551,0},{9.0302352e-05,-3.15164194e-05},{-0.000152495767,0},{-5.51539766e-05,-1.67281321e-05},{-4.59740815e-05,-6.5613231e-05},},{{-0.000474437572,0},{0.000256605871,0},{0.000230141356,0.000216003814},{-3.36890277e-05,0},{-0.000161903847,-0.00015601616},{5.62789563e-05,-0.000115484517},},
  },{{{8.08100902e-05,0},{-1.24150136e-05,0},{2.97239637e-05,3.01248608e-05},{-8.81348533e-06,0},{-5.9279398e-06,-7.05080038e-06},{1.83682257e-07,1.98545786e-05},},{{9.88126985e-05,0},{-2.78942688e-05,0},{2.93522518e-05,3.51768134e-05},{-3.05945684e-08,0},{-6.25972517e-06,-1.28619508e-05},{-2.06029633e-06,2.09756307e-05},},{{9.221067e-05,0},{-1.28342855e-05,0},{3.15258021e-05,3.4054947e-05},{-7.1576721e-06,0},{-3.52408191e-06,-6.19318583e-06},{-8.32336843e-07,2.18476803e-05},},
  },{{{2.63397694e-05,0},{2.47133651e-05,0},{-6.9114083e-06,8.25874086e-06},{5.19841686e-06,0},{-2.2662992e-05,-3.35110142e-06},{8.45257884e-06,-3.3579282e-06},},{{-1.51572466e-05,0},{1.04782579e-05,0},{1.70706868e-05,6.80912812e-06},{1.2470584e-05,0},{-8.89084377e-06,-4.75944689e-07},{-1.15602893e-05,-2.94260397e-06},},{{-0.00011356827,0},{8.72682973e-06,0},{8.17927543e-05,3.05812888e-05},{4.86534962e-05,0},{-3.4329932e-06,9.41927141e-08},{-5.09736831e-05,-3.05118839e-05},},
  },{{{-1.63643848e-05,0},{1.02105148e-05,0},{5.85896053e-06,6.05703743e-06},{-1.9463413e-06,0},{-6.05725009e-06,-6.27185225e-06},{1.73349476e-07,-5.08480977e-06},},{{-2.17132429e-05,0},{1.36737e-05,0},{7.97408549e-06,7.72891951e-06},{-2.81536078e-06,0},{-8.32707632e-06,-8.07187171e-06},{-2.16436155e-07,-6.65299144e-06},},{{-1.91369393e-05,0},{1.16400667e-05,0},{7.02604841e-06,7.16496191e-06},{-1.72560746e-06,0},{-7.07984853e-06,-7.2334104e-06},{1.20578084e-07,-6.17376825e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{-5.39254176e-05,0},{3.95452892e-05,0},{1.68036799e-05,5.83662938e-06},{-1.92383363e-05,0},{-1.85845657e-05,-6.99077303e-06},{-4.05580175e-06,-3.35513344e-06},},{{-0.000152046099,0},{0.000111103763,0},{4.88282312e-05,9.15482432e-06},{-5.3500298e-05,0},{-5.39147965e-05,-1.09952831e-05},{-1.30474886e-05,-4.93698457e-06},},{{-4.32028752e-05,0},{3.12750068e-05,0},{1.38628046e-05,5.49294346e-06},{-1.45728604e-05,0},{-1.51427922e-05,-6.48586002e-06},{-3.51942993e-06,-3.37840973e-06},},
  },},{{{{0.000299633827,0},{3.79047093e-05,0},{0.000159709608,-6.64074746e-05},{-0.000105871425,0},{3.68680908e-05,-1.25117156e-05},{6.22183084e-05,-6.03950498e-05},},{{-0.000237369205,0},{-0.000114258414,0},{-0.000139835061,-1.39963789e-05},{1.20143116e-05,0},{-8.80531163e-05,7.27672424e-06},{-9.42049814e-05,-1.22295687e-06},},{{0.00012004903,0},{2.37477246e-06,0},{4.12566628e-05,-9.44894578e-05},{-5.1448668e-05,0},{6.36233084e-06,-7.58002098e-06},{-2.27356237e-05,-8.50799929e-05},},
  },{{{-0.00277635769,0},{-0.00347622817,0},{0.000102341441,-0.000886264522},{-0.00124702069,0},{-0.00063349764,-0.00104314019},{0.000475617374,-0.000288265977},},{{-0.00123482793,0},{-0.00191238241,0},{-0.00112733115,0.00114134879},{-0.000929364243,0},{-0.000943427921,0.000125944895},{-0.000815345652,0.000115782943},},{{-0.00411740452,0},{-0.0021218388,0},{-0.00238005528,-0.00105935699},{0.000518865872,0},{-0.00119242713,-0.000733589806},{-0.000316183618,-0.00110805995},},
  },{{{-0.000381380079,0},{-0.00032817111,0},{-2.05532659e-05,-4.8643726e-05},{-0.000237533539,0},{-2.63360066e-05,-6.71063691e-05},{-3.30209924e-06,1.34848041e-06},},{{-0.000290841625,0},{-0.000250803245,0},{-4.17938605e-05,-1.67230614e-05},{-0.000183070047,0},{-5.35485804e-05,-2.32597152e-05},{-1.18717488e-05,9.37772944e-08},},{{0.000242361285,0},{0.000199823045,0},{-6.23919638e-05,-4.89485556e-06},{0.000133633803,0},{-7.56168528e-05,-5.01608683e-06},{1.78312069e-05,5.877271e-06},},
  },{{{0.00013282526,0},{-0.000189500161,0},{0.000118259119,-1.41490552e-06},{-8.24222465e-05,0},{-7.85614098e-05,-7.69379732e-06},{6.89414605e-05,-1.44381324e-05},},{{-0.000290838705,0},{-0.000245716354,0},{-0.000110178784,9.15486473e-05},{-4.39167232e-05,0},{-0.000115861812,6.3756391e-05},{-4.6418399e-05,8.83478829e-05},},{{-5.57846386e-05,0},{-3.55969571e-05,0},{-4.49819884e-05,1.76849031e-05},{3.19380625e-05,0},{-3.03563427e-05,4.81099786e-06},{-3.1576405e-05,2.11682672e-05},},
  },{{{5.72801676e-06,0},{-9.6550406e-05,0},{-6.7277041e-05,-6.58361489e-05},{-0.000102889417,0},{-8.31421588e-06,-7.02457146e-05},{8.29935422e-05,2.88781195e-05},},{{8.03940156e-05,0},{1.37542662e-05,0},{-3.53244266e-05,-1.23147152e-06},{-2.162691e-05,0},{-1.98100996e-05,-6.25865226e-07},{2.24847527e-05,1.62823443e-05},},{{0.000145218697,0},{5.59067557e-05,0},{-0.000115537827,-2.92040265e-05},{-2.07642282e-05,0},{-4.95407607e-05,-7.44449073e-06},{7.19479271e-05,7.35524451e-06},},},{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},}},},};
  vector<vector<vector<vector<vector<double> > > > > grad3_1_H = {{{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{-3.97991176e-05,0},{-8.57774933e-06,0},{-1.7370461e-05,6.14900455e-06},{7.07719476e-06,0},{-7.5128377e-06,-1.36645125e-06},{-4.40635613e-06,1.98594153e-06},},{{-6.33106147e-05,0},{-1.55881403e-05,0},{-3.72300042e-05,-3.67413014e-06},{1.40407265e-05,0},{-1.28910649e-05,2.7628533e-08},{-2.30570395e-05,-3.80783979e-06},},{{-0.000139024394,0},{-3.87486884e-05,0},{-7.00845966e-05,1.22272064e-05},{2.47948173e-05,0},{-3.21226174e-05,6.05862517e-07},{-3.05837996e-05,6.2136789e-06},},
  },{{{-0.000487837526,0},{-0.00107856352,0},{0.000125155424,-0.000136040399},{-0.000243442387,0},{-0.000198153557,-0.000351513852},{0.000103249855,2.38241786e-05},},{{5.56487287e-05,0},{-0.000569794006,0},{-0.000320001913,0.000409064134},{-0.000218177087,0},{-0.000222581276,-9.30307289e-05},{-0.00028323205,-3.71482533e-05},},{{-0.000779154791,0},{-0.000591424168,0},{-0.000633339566,-0.000104443341},{0.000115318282,0},{-0.000297162447,-0.000196128761},{-0.000140106596,-0.000286320208},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{-4.47656539e-05,0},{-3.83208141e-05,0},{-5.98504969e-07,-1.6939508e-06},{-2.77007048e-05,0},{-9.17559849e-07,-2.43446155e-06},{-1.76550418e-06,-4.49154388e-07},},{{8.93229584e-07,0},{8.23115237e-07,0},{4.6944227e-06,-3.92085311e-06},{7.77367817e-07,0},{5.96346799e-06,-5.39318369e-06},{1.38337198e-06,3.35526596e-07},},{{-2.82557216e-05,0},{-2.37783545e-05,0},{-6.42256579e-07,2.6478924e-07},{-1.66236342e-05,0},{-1.14606544e-06,2.48667704e-07},{-1.69346111e-06,-5.23492473e-07},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{1.49028523e-05,0},{-3.60033257e-05,0},{1.38596557e-05,5.26900565e-06},{-9.22469546e-06,0},{-1.91763898e-05,2.45557634e-06},{1.01482938e-05,2.46371322e-06},},{{1.83217955e-06,0},{-5.9122928e-06,0},{5.54628724e-07,1.21010789e-06},{9.45416527e-07,0},{-4.1694998e-06,-6.39555145e-08},{1.00462455e-07,1.13613647e-06},},{{-1.57925532e-05,0},{-3.10402041e-05,0},{-4.75520761e-06,1.00046636e-05},{-2.6101499e-06,0},{-1.63754064e-05,5.18052449e-06},{-9.62763871e-07,8.84126754e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{2.50374036e-05,0},{4.86093097e-06,0},{-1.54501271e-05,-1.9862062e-06},{-7.65511066e-06,0},{-5.38024033e-06,-1.07090747e-06},{1.10101672e-05,3.26502502e-06},},{{-9.91774023e-06,0},{-3.37306985e-06,0},{3.06148392e-06,-3.03828453e-06},{4.1730597e-07,0},{1.12162517e-06,-2.21919267e-06},{-1.51683438e-06,6.82990949e-07},},{{-3.63491123e-05,0},{-1.19161761e-05,0},{1.95045762e-05,1.63054368e-06},{2.10648804e-06,0},{4.74856065e-06,-4.51407511e-06},{-1.00652493e-05,-3.44637164e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },},{{{{1.58700327e-05,0},{-7.97117536e-06,0},{-5.91902068e-06,-5.56707489e-06},{-6.97088342e-07,0},{4.51367035e-06,4.60001385e-06},{3.19298895e-07,3.93931357e-06},},{{1.54139444e-05,0},{-7.21654285e-06,0},{-5.44829865e-06,-8.79465869e-06},{-1.39655265e-06,0},{3.72271491e-06,7.37090237e-06},{-3.92937474e-07,6.81123167e-06},},{{2.65161217e-05,0},{-1.07202142e-05,0},{-1.11877724e-05,-1.05637438e-05},{-4.52710762e-06,0},{6.50373982e-06,8.20685493e-06},{1.89333443e-06,8.33663977e-06},},
  },{{{-1.57800054e-05,0},{1.27529792e-05,0},{1.10736587e-06,1.0791141e-05},{2.37252373e-06,0},{-5.87950304e-06,-7.06558892e-06},{7.06007858e-06,-4.37788938e-06},},{{1.12318941e-05,0},{7.51891594e-07,0},{-8.06051673e-06,2.53831031e-07},{-8.87957528e-07,0},{1.84860443e-07,-1.27356673e-06},{6.3008366e-06,2.2340569e-06},},{{-0.000112587986,0},{2.32621317e-05,0},{3.90847502e-05,4.71886207e-05},{2.13551634e-05,0},{-6.66863386e-06,-1.66181903e-05},{5.34475504e-06,-3.11236682e-05},},
  },{{{3.60770714e-05,0},{8.14413311e-06,0},{2.00980906e-05,-3.71402425e-06},{-9.30860779e-06,0},{6.85683901e-06,-1.06923699e-06},{1.0195577e-05,-3.84535231e-06},},{{2.02582421e-05,0},{3.56484176e-06,0},{1.07808491e-05,-3.83575492e-06},{-6.03122632e-06,0},{3.14871401e-06,-6.63875497e-07},{4.47710619e-06,-3.67980173e-06},},{{4.25590604e-05,0},{1.00951318e-05,0},{2.27599665e-05,-6.7627724e-06},{-1.05791561e-05,0},{8.560604e-06,-1.27355093e-06},{1.03110435e-05,-6.6836439e-06},},
  },{{{5.40911732e-06,0},{3.74171193e-06,0},{-1.58239859e-06,8.32030649e-07},{1.63236435e-06,0},{-1.52674349e-06,1.07776958e-06},{5.34988704e-07,-1.45328144e-07},},{{1.47891803e-05,0},{9.56997602e-06,0},{-3.83263433e-06,2.47881573e-06},{3.57310873e-06,0},{-3.20632696e-06,3.1606156e-06},{1.33645957e-06,2.74229993e-07},},{{1.39797887e-05,0},{9.20259359e-06,0},{-3.12634697e-06,2.58914643e-06},{3.61490886e-06,0},{-2.64753151e-06,3.23996763e-06},{8.97632903e-07,4.13075054e-07},},
  },{{{1.43320844e-05,0},{1.18380365e-05,0},{-1.63168935e-06,1.99474672e-07},{7.93444893e-06,0},{-1.87388769e-06,3.73832615e-07},{9.46771489e-07,3.48300574e-07},},{{1.09062059e-05,0},{8.9285533e-06,0},{-1.49167017e-06,4.05431002e-07},{5.85985566e-06,0},{-1.69818019e-06,6.4386291e-07},{7.23800442e-07,2.3548125e-07},},{{2.86442217e-05,0},{2.36810661e-05,0},{-2.48774705e-06,1.03731609e-06},{1.58808451e-05,0},{-2.75250081e-06,1.61163971e-06},{1.75069125e-06,5.18252174e-07},},
  },{{{2.97322296e-05,0},{6.32496413e-06,0},{-1.67151215e-05,1.11626241e-05},{-9.21388028e-06,0},{-5.53597573e-06,-1.93206398e-06},{3.89512993e-06,-1.04303309e-05},},{{9.88361324e-06,0},{4.53763469e-05,0},{1.20694743e-05,3.42824492e-05},{-9.77027179e-06,0},{-2.04102384e-05,5.253392e-06},{-1.93664918e-05,-1.2238807e-05},},{{2.83211632e-05,0},{3.63910345e-06,0},{4.58443931e-06,3.33345991e-05},{-1.88128775e-06,0},{-3.63133291e-06,-4.46270105e-06},{-1.63942373e-05,-1.43302698e-05},},
  },{{{4.05843836e-05,0},{2.83979101e-05,0},{6.15109265e-07,-7.71659511e-06},{1.21134515e-05,0},{-9.48048366e-08,-7.12261652e-06},{3.52847241e-07,-7.07605532e-08},},{{3.1716149e-05,0},{1.32443122e-05,0},{1.44712486e-06,-1.44555094e-05},{-9.21683297e-07,0},{-2.23748515e-07,-7.87276863e-06},{-4.94425599e-06,-2.23400378e-06},},{{5.77687087e-05,0},{4.05438292e-05,0},{1.10585035e-05,-8.5883552e-06},{1.76936454e-05,0},{7.3603232e-06,-8.13661961e-06},{2.63826491e-06,-6.1079941e-06},},
  },{{{3.27197044e-05,0},{1.10778239e-05,0},{2.18844824e-05,3.31330106e-05},{-2.83604016e-05,0},{-3.20802628e-06,-1.81736987e-05},{2.85086877e-07,1.56140572e-05},},{{1.21353475e-05,0},{4.20440376e-05,0},{4.26386026e-05,2.65883869e-05},{-5.04189401e-05,0},{-1.14655474e-05,-6.25203302e-06},{8.80640869e-06,2.69068705e-05},},{{7.8346813e-05,0},{-2.91147046e-05,0},{2.51651324e-05,2.65368027e-05},{-5.19945809e-06,0},{-9.63375205e-06,-1.4643016e-05},{2.4843227e-06,1.41524787e-05},},
  },{{{-7.17576829e-05,0},{8.11661784e-05,0},{6.19321261e-05,6.90040866e-05},{-5.29360658e-05,0},{-2.12204305e-05,-4.60425247e-05},{4.20714796e-05,4.36315812e-06},},{{3.08781796e-05,0},{1.21909426e-05,0},{3.94335645e-05,2.68869203e-06},{-2.90680597e-05,0},{-1.39696964e-05,-6.69922583e-06},{1.36267651e-05,-8.85087375e-06},},{{3.69946246e-05,0},{6.06329398e-06,0},{7.48469859e-05,3.47931801e-05},{-2.26303044e-05,0},{-3.60959857e-05,-2.42480038e-05},{3.64447202e-05,-8.01949613e-06},},
  },{{{1.74034836e-05,0},{-5.91532488e-06,0},{6.09891609e-06,5.60871715e-06},{-8.1516707e-07,0},{-1.93956959e-06,-2.45867785e-06},{7.39085104e-07,3.94266678e-06},},{{3.49317758e-05,0},{-2.27409634e-06,0},{1.42401294e-05,1.30581985e-05},{-6.69461964e-06,0},{-1.706306e-06,-1.04300231e-06},{8.33609748e-07,9.76826923e-06},},{{3.57637368e-05,0},{-1.12543887e-05,0},{1.08563501e-05,1.29766874e-05},{-1.1806993e-06,0},{-2.96623644e-06,-5.26589412e-06},{-8.37133696e-07,7.92415649e-06},},
  },{{{1.69431357e-05,0},{2.00595452e-06,0},{-8.47076926e-06,-1.67845568e-06},{-3.40621841e-06,0},{-1.49232856e-06,1.00622877e-06},{5.37402997e-06,3.33616339e-06},},{{2.05985084e-05,0},{1.17740103e-06,0},{-1.11615662e-05,-2.4925046e-06},{-5.22190341e-06,0},{-5.66796447e-07,1.31097645e-06},{6.98842628e-06,4.22331302e-06},},{{2.2555613e-05,0},{1.23715311e-06,0},{-1.29018246e-05,-3.3751203e-06},{-5.95073771e-06,0},{-1.12723089e-08,1.76968135e-06},{7.49282777e-06,5.00113916e-06},},
  },{{{9.26314602e-06,0},{-5.74243942e-06,0},{-3.36287424e-06,-3.40760715e-06},{1.03722078e-06,0},{3.45348696e-06,3.5029143e-06},{-3.91823843e-08,2.90002521e-06},},{{1.51017215e-05,0},{-9.41273783e-06,0},{-5.53974353e-06,-5.45437997e-06},{1.78491897e-06,0},{5.72211422e-06,5.63507361e-06},{7.56026891e-08,4.68944122e-06},},{{1.18062265e-05,0},{-7.21328141e-06,0},{-4.3347679e-06,-4.38386064e-06},{1.1289951e-06,0},{4.38602989e-06,4.44157857e-06},{-4.24068279e-08,3.77570967e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{7.32283671e-06,0},{-4.9772113e-06,0},{-2.55940356e-06,-1.23414485e-06},{1.79762171e-06,0},{2.62817531e-06,1.4383296e-06},{6.83165228e-07,7.90436756e-07},},{{1.24070715e-05,0},{-8.42546438e-06,0},{-4.28360464e-06,-2.86738084e-06},{3.04252026e-06,0},{4.36358877e-06,3.35233687e-06},{1.12860473e-06,1.86123766e-06},},{{8.77227332e-06,0},{-6.37663899e-06,0},{-2.61769492e-06,-1.39094844e-06},{3.01491244e-06,0},{2.84006199e-06,1.62472317e-06},{4.75440704e-07,8.71454193e-07},},
  },},{{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},}}}};
  vector<vector<vector<vector<vector<double> > > > > grad3_1_F = {{{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0.000301838324,0},{3.88754313e-05,0},{0.000160897528,-6.64300776e-05},{-0.000106007891,0},{3.7628048e-05,-1.25349984e-05},{6.28911807e-05,-6.04465883e-05},},{{-0.0002321992,0},{-0.000112548092,0},{-0.000137037468,-1.45209927e-05},{1.11300484e-05,0},{-8.66732474e-05,7.12237858e-06},{-9.27898531e-05,-1.80086967e-06},},{{0.000125192758,0},{3.70227306e-06,0},{4.42184622e-05,-9.4551324e-05},{-5.26374343e-05,0},{7.46748336e-06,-7.6776565e-06},{-2.10360772e-05,-8.5146493e-05},},
  },{{{-0.00280006793,0},{-0.00347060746,0},{9.45015124e-05,-0.000888898598},{-0.00124361846,0},{-0.00062989844,-0.00103974621},{0.000471456103,-0.000287712272},},{{-0.00125502369,0},{-0.00191049896,0},{-0.00112964928,0.00113259812},{-0.000927074096,0},{-0.000940771218,0.000126208967},{-0.00081326623,0.000114106596},},{{-0.00415250834,0},{-0.00214966581,0},{-0.00237836574,-0.00105967311},{0.000502234022,0},{-0.00119367628,-0.000735954262},{-0.00031716343,-0.00110305345},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{-0.000386674565,0},{-0.00033262114,0},{-2.01747621e-05,-4.8898411e-05},{-0.000240616898,0},{-2.58950133e-05,-6.7477572e-05},{-3.55637176e-06,1.2936426e-06},},{{-0.000298274994,0},{-0.000257088761,0},{-4.15354136e-05,-1.7092926e-05},{-0.000187481331,0},{-5.32678473e-05,-2.37928037e-05},{-1.21986829e-05,2.03309437e-08},},{{0.000235100186,0},{0.000193625222,0},{-6.25270322e-05,-5.4774192e-06},{0.000129207752,0},{-7.58112686e-05,-5.82994902e-06},{1.76116206e-05,5.86228297e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0.000129202311,0},{-0.000190197257,0},{0.000116631055,-7.8413932e-07},{-8.26254175e-05,0},{-7.86768121e-05,-7.14464356e-06},{6.81176675e-05,-1.3714988e-05},},{{-0.000292498565,0},{-0.000246401626,0},{-0.000110796504,9.18709785e-05},{-4.42163493e-05,0},{-0.000116067096,6.40784227e-05},{-4.66807207e-05,8.86844932e-05},},{{-5.987176e-05,0},{-3.88437193e-05,0},{-4.62164197e-05,1.87348909e-05},{3.07944009e-05,0},{-3.15477257e-05,5.63056417e-06},{-3.20560184e-05,2.21992155e-05},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{4.68038324e-06,0},{-9.74311359e-05,0},{-6.68880828e-05,-6.60191116e-05},{-0.000103230712,0},{-7.87204255e-06,-7.04545313e-05},{8.28447046e-05,2.89581321e-05},},{{8.11430015e-05,0},{1.3821613e-05,0},{-3.57244074e-05,-1.28331687e-06},{-2.18365661e-05,0},{-1.98810349e-05,-5.98418149e-07},{2.27590766e-05,1.64047042e-05},},{{0.000145543702,0},{5.50159542e-05,0},{-0.00011630234,-2.98525709e-05},{-2.1808119e-05,0},{-4.96010844e-05,-8.05926065e-06},{7.2765025e-05,7.71595982e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },},{{{{-0.000202214187,0},{0.000103214918,0},{7.36692686e-05,7.1501191e-05},{6.58621906e-06,0},{-5.68098051e-05,-6.04945322e-05},{-2.12661281e-06,-4.85733335e-05},},{{-0.000448969189,0},{0.000217080234,0},{0.00020080497,7.84423261e-05},{2.72722429e-05,0},{-0.000145574205,-6.27819908e-05},{-6.6386082e-05,-5.64780432e-05},},{{-0.000345779297,0},{0.000154572942,0},{0.000148385066,0.000101925468},{3.94945376e-05,0},{-9.81271838e-05,-8.05427792e-05},{-3.44948737e-05,-7.68216755e-05},},
  },{{{-0.000153018896,0},{0.000183086117,0},{7.09401584e-06,7.78727861e-05},{-4.12351002e-05,0},{-8.63890006e-05,-8.72131917e-05},{4.96909643e-05,-2.11758094e-05},},{{2.60245771e-05,0},{4.50697965e-05,0},{-6.52642745e-07,-3.2216408e-05},{-3.58231116e-05,0},{-3.45110068e-05,-7.18246508e-06},{-2.49674125e-05,1.5151088e-05},},{{-0.000792114623,0},{0.000302336997,0},{0.000292895942,0.00027843959},{7.16361722e-05,0},{-0.000143321772,-0.000153271063},{-2.02924921e-05,-0.000192801306},},
  },{{{2.43684965e-05,0},{1.20701123e-05,0},{2.3284226e-05,1.11931535e-05},{-6.06651062e-06,0},{6.39553462e-06,-7.32706401e-06},{2.16087509e-05,2.18885697e-06},},{{5.86582358e-05,0},{-1.55500628e-07,0},{2.41033718e-05,-2.17250103e-05},{-2.3883917e-05,0},{1.89223683e-06,1.02613798e-06},{-1.24367986e-06,-1.35854507e-05},},{{5.95808578e-05,0},{1.54466352e-05,0},{3.94804204e-05,-1.57478011e-06},{-1.62545421e-05,0},{8.95859643e-06,-7.28311971e-06},{2.35837365e-05,-1.03071076e-05},},
  },{{{3.15923538e-05,0},{1.88430018e-05,0},{-1.1982101e-05,2.92785061e-06},{4.96264551e-06,0},{-9.69625634e-06,4.07479822e-06},{5.98067923e-06,2.68759944e-07},},{{2.11425161e-05,0},{1.70902867e-05,0},{-2.16860207e-06,6.03526194e-06},{8.61811427e-06,0},{-4.86096707e-06,6.23300517e-06},{-1.27217995e-06,-4.2227838e-07},},{{1.40331986e-05,0},{1.41058612e-05,0},{2.21071264e-06,6.88104278e-06},{9.50842021e-06,0},{-1.69878615e-06,6.86980663e-06},{-3.93664219e-06,-1.34697081e-06},},
  },{{{4.08707503e-05,0},{3.22236616e-05,0},{-8.15837948e-06,-1.10961187e-06},{1.9148309e-05,0},{-9.36260033e-06,-1.09529005e-06},{4.3409769e-06,1.5206025e-06},},{{2.89508286e-05,0},{2.31776214e-05,0},{-5.45138627e-06,5.43102285e-08},{1.42566365e-05,0},{-6.51426433e-06,3.2099628e-07},{2.15113629e-06,9.93696863e-07},},{{4.31165793e-05,0},{3.66266599e-05,0},{-1.80033673e-06,1.62401133e-06},{2.58158509e-05,0},{-2.56456765e-06,2.12273373e-06},{2.06459711e-06,-6.03234573e-07},},
  },{{{0.000146675922,0},{9.22864136e-06,0},{-6.70571508e-05,3.53325532e-05},{-2.75515324e-05,0},{-9.52151158e-06,-1.4313307e-05},{2.1219849e-05,-1.96030702e-05},},{{-0.000139904417,0},{0.000117865225,0},{7.46327278e-05,7.1049469e-05},{-1.63468191e-05,0},{-6.44267719e-05,-2.13851463e-05},{-4.12170571e-05,-4.32040842e-05},},{{2.80067549e-05,0},{-7.80890918e-06,0},{2.36135546e-05,8.34322472e-05},{2.82703954e-05,0},{-4.04766403e-06,-2.34715477e-05},{-2.7004185e-05,-5.20518375e-05},},
  },{{{4.99892343e-05,0},{5.12540237e-05,0},{-1.29830799e-05,-1.51558111e-06},{2.15151207e-05,0},{-8.99652291e-06,-1.64572253e-05},{9.3068687e-06,1.03673754e-05},},{{0.000125666653,0},{3.19689256e-05,0},{2.5824357e-06,-6.15372906e-05},{-1.96015856e-05,0},{-4.0716099e-06,-1.65110992e-05},{-2.66276068e-05,-3.43681479e-06},},{{6.77977745e-06,0},{3.42991298e-05,0},{1.90244233e-05,2.35856299e-05},{2.88100216e-05,0},{8.96706681e-06,-1.44691157e-06},{2.02218769e-05,-1.44611458e-05},},
  },{{{-0.000128088282,0},{0.00013490507,0},{2.34141158e-05,0.000117734698},{-9.70460283e-05,0},{-6.0471742e-06,-0.000105339041},{3.49952076e-06,-8.75812968e-06},},{{-0.000334609261,0},{0.000309546376,0},{0.000123777083,0.000100569715},{-0.000203278029,0},{-9.60165718e-05,-8.13058927e-05},{8.67017097e-06,8.71678193e-06},},{{5.78302044e-05,0},{-1.10866516e-05,0},{5.58068265e-05,7.7639159e-05},{-1.71290438e-05,0},{-3.86583253e-05,-6.74855225e-05},{1.25071686e-05,-7.74401591e-06},},
  },{{{-0.000702123364,0},{0.000475580356,0},{0.000190015339,0.000275638909},{-0.000177896604,0},{-0.000111165735,-0.000208680107},{7.25966132e-05,-6.66749474e-05},},{{-7.73096042e-05,0},{0.000149008267,0},{0.000118365004,-1.80169733e-05},{-0.000140049084,0},{-7.06385137e-05,-1.97216771e-05},{-3.43554324e-05,-5.06495594e-05},},{{-0.000256881462,0},{0.00013821113,0},{0.000219675513,0.000159916262},{-8.84965903e-06,0},{-0.000149059222,-0.000115191692},{4.89761077e-05,-9.6052915e-05},},
  },{{{2.89785668e-05,0},{-1.76412097e-06,0},{9.17372634e-06,1.35236839e-05},{-4.58748365e-06,0},{-6.98110034e-07,-3.56608781e-06},{-2.97982741e-06,7.04206871e-06},},{{1.33461012e-05,0},{2.68894213e-05,0},{1.72943537e-05,1.1485942e-05},{-2.41562734e-05,0},{-2.13657216e-06,6.39162279e-06},{1.46914896e-07,9.09774924e-06},},{{7.17185098e-05,0},{-2.26851578e-05,0},{1.98187743e-05,2.47119763e-05},{3.3757882e-06,0},{-4.77668675e-06,-1.10651739e-05},{-1.30716161e-06,1.26010183e-05},},
  },{{{5.88459256e-05,0},{2.5846186e-05,0},{-2.9301796e-05,2.32113955e-06},{-7.42367489e-06,0},{-2.65331217e-05,-5.84565652e-06},{2.47267738e-05,2.72869318e-06},},{{-3.26363806e-05,0},{2.29839373e-05,0},{3.43665107e-05,1.76232503e-05},{2.68692531e-05,0},{-1.74881187e-05,-4.01828265e-07},{-2.22030049e-05,-1.14357559e-05},},{{-0.000114126,0},{2.01489737e-05,0},{8.60975253e-05,3.80471067e-05},{5.70838663e-05,0},{-1.14433754e-05,2.54158763e-07},{-5.21196139e-05,-3.74182408e-05},},
  },{{{-1.38805453e-05,0},{8.63887724e-06,0},{4.96221641e-06,5.1639812e-06},{-1.61016403e-06,0},{-5.11652151e-06,-5.33463518e-06},{1.76577855e-07,-4.32922671e-06},},{{-2.21440961e-05,0},{1.39275392e-05,0},{8.1205843e-06,7.90870451e-06},{-2.83912192e-06,0},{-8.46901527e-06,-8.24919465e-06},{-1.87140831e-07,-6.79776465e-06},},{{-1.62248801e-05,0},{9.8216739e-06,0},{5.94820385e-06,6.12367047e-06},{-1.37633774e-06,0},{-5.96388523e-06,-6.15552983e-06},{1.52856742e-07,-5.26985024e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{-1.7156415e-05,0},{1.23360686e-05,0},{5.31965655e-06,4.55996927e-06},{-5.59303618e-06,0},{-5.74109771e-06,-5.41699969e-06},{-1.13911375e-06,-2.83425563e-06},},{{-0.000110092789,0},{8.0125198e-05,0},{3.55275305e-05,8.92957067e-06},{-3.80673802e-05,0},{-3.90526089e-05,-1.06599088e-05},{-9.52738057e-06,-5.13660932e-06},},{{-3.1563534e-06,0},{1.90699371e-06,0},{1.01717105e-06,4.2786875e-06},{-2.60278787e-07,0},{-8.97686547e-07,-4.99540523e-06},{-5.88006168e-08,-2.88843203e-06},},
  },},{{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},}},}};
  vector<vector<vector<vector<vector<double> > > > > grad3_2_H = {{{{{4.11772985e-05,0},{-2.13899024e-05,0},{-1.51725775e-05,-1.12896808e-05},{-6.14008417e-07,0},{1.19140292e-05,9.25931941e-06},{9.43095051e-07,7.28458515e-06},},{{7.03385884e-05,0},{-3.41397438e-05,0},{-3.00282435e-05,-1.20226234e-05},{-3.79408163e-06,0},{2.15465313e-05,9.35818437e-06},{8.17027159e-06,7.90760778e-06},},{{8.27915254e-05,0},{-3.53396595e-05,0},{-3.62472502e-05,-2.10320669e-05},{-1.11708532e-05,0},{2.25096234e-05,1.57756803e-05},{9.25287705e-06,1.56020105e-05},},
  },{{{-2.54660129e-05,0},{2.36842855e-05,0},{1.56411889e-06,1.38510644e-05},{-3.20264164e-06,0},{-9.61715092e-06,-1.28001058e-05},{8.560019e-06,-4.07134224e-06},},{{1.42720937e-05,0},{8.16251154e-06,0},{-1.02194822e-05,-3.56559362e-06},{-8.46237439e-06,0},{-3.62962257e-06,-3.32444945e-06},{4.86965524e-06,5.89274138e-06},},{{-7.28418435e-05,0},{3.44199612e-05,0},{1.99714565e-05,3.09963977e-05},{3.90458137e-06,0},{-1.35803786e-05,-1.9197882e-05},{7.16709145e-06,-1.67393576e-05},},
  },{{{6.02408867e-06,0},{9.55892613e-06,0},{7.51121556e-06,5.22797805e-06},{2.21679936e-06,0},{6.27696356e-06,-3.3691523e-06},{9.02756885e-06,4.42343014e-07},},{{-3.9527967e-06,0},{9.39008395e-07,0},{-9.85755754e-07,1.11325119e-06},{1.33096689e-06,0},{2.87461487e-07,-9.57256769e-07},{6.17061953e-07,-3.97830289e-07},},{{1.51634936e-05,0},{1.01723221e-05,0},{1.13113174e-05,1.65329252e-06},{-7.59066315e-07,0},{6.96763221e-06,-3.26053113e-06},{9.07140501e-06,-2.3144592e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{3.71159186e-08,0},{4.90981714e-07,0},{-2.78153467e-07,-4.33054167e-08},{5.63949013e-07,0},{-6.39829679e-07,-5.97779531e-08},{2.85106964e-08,-4.48592877e-07},},{{-1.13079406e-05,0},{-5.27268445e-06,0},{4.19363982e-06,-9.89392377e-07},{-2.01060314e-07,0},{2.00306574e-06,-1.6326569e-06},{-2.40727409e-06,-9.27229638e-07},},{{-1.08938118e-05,0},{-4.45639086e-06,0},{5.20918787e-06,-1.56890058e-08},{6.59114469e-07,0},{2.61572129e-06,-6.36914567e-07},{-3.31315689e-06,-1.06626322e-06},},
  },{{{-1.31822468e-06,0},{-9.33179716e-07,0},{-5.47958035e-07,-3.52895317e-07},{-3.65725951e-07,0},{-7.43557507e-07,-5.19821617e-07},{-8.07168433e-08,-1.88387109e-08},},{{-7.96437246e-06,0},{-6.37968241e-06,0},{5.17585066e-07,-4.02206757e-07},{-3.95934243e-06,0},{4.70795303e-07,-6.27670121e-07},{-6.47993971e-07,-1.30087857e-07},},{{-6.84176057e-06,0},{-4.68423536e-06,0},{2.09821076e-06,3.05119952e-07},{-1.673866e-06,0},{2.18226004e-06,2.00644226e-07},{-1.19274234e-06,-6.55752662e-07},},
  },{{{1.92941525e-05,0},{2.28825851e-05,0},{-4.47215183e-06,1.80825785e-05},{-7.72912453e-06,0},{-1.14315469e-05,6.12008949e-07},{-3.26011125e-06,-9.23356486e-06},},{{-7.51829772e-06,0},{3.43060365e-05,0},{1.32875295e-05,2.04831887e-05},{-4.11559887e-06,0},{-1.57859103e-05,-6.53391119e-07},{-1.01250582e-05,-5.98757106e-06},},{{8.97806466e-06,0},{2.03771267e-05,0},{1.39155771e-05,3.12158833e-05},{-2.08979395e-07,0},{-9.15048346e-06,-3.27544138e-06},{-1.62070782e-05,-1.06388081e-05},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{1.0336795e-05,0},{1.93970338e-05,0},{5.72787077e-07,2.02224097e-07},{1.06596045e-05,0},{2.01612727e-06,-1.05122767e-05},{2.66611236e-06,-3.44217793e-07},},{{1.58117292e-06,0},{-6.69424317e-07,0},{-1.44652958e-06,-3.64728556e-06},{-2.34503066e-06,0},{-6.85875962e-07,-2.4245825e-06},{-2.38244652e-06,8.10007653e-07},},{{8.12483542e-06,0},{1.99306403e-05,0},{8.77219949e-06,1.45796265e-06},{1.27702038e-05,0},{7.39695473e-06,-1.09563439e-05},{2.95313398e-06,-6.34317123e-06},},
  },{{{8.48592646e-06,0},{2.12089791e-05,0},{2.01200747e-05,3.6711942e-05},{-2.76395417e-05,0},{-5.47168921e-06,-2.37641869e-05},{-4.26118868e-07,1.41103408e-05},},{{-1.86259513e-05,0},{3.16149257e-05,0},{2.51340011e-05,2.19839216e-05},{-2.53390261e-05,0},{-1.46218357e-05,-1.26266534e-05},{1.54661422e-07,1.23453248e-05},},{{2.98680782e-05,0},{-2.45865293e-06,0},{2.58255239e-05,2.87361595e-05},{-1.08375666e-05,0},{-1.45749984e-05,-1.95115022e-05},{1.8872844e-06,1.08850597e-05},},
  },{{{-5.12274664e-05,0},{7.97658304e-05,0},{6.08694412e-05,6.89784816e-05},{-5.97138103e-05,0},{-1.58107351e-05,-4.86607832e-05},{4.09615681e-05,1.15213151e-05},},{{6.14641863e-05,0},{-5.5974502e-06,0},{2.79651694e-05,1.88627867e-06},{-2.27069641e-05,0},{-4.73101855e-06,-5.63455661e-06},{1.25637756e-05,2.40135198e-06},},{{7.35168037e-05,0},{9.4926867e-06,0},{7.62458308e-05,3.34599446e-05},{-4.40972183e-05,0},{-2.86304217e-05,-2.78313915e-05},{3.9148958e-05,5.74058713e-06},},
  },{{{3.17715593e-06,0},{4.2283209e-06,0},{3.77041123e-06,4.98182396e-06},{-8.14009911e-06,0},{-1.38474644e-06,-4.34778943e-07},{-2.11535946e-06,3.85178371e-06},},{{-1.35947508e-05,0},{1.38176982e-05,0},{4.33142719e-06,8.50011016e-07},{-1.62067158e-05,0},{-3.88674708e-06,1.6876075e-06},{-7.415396e-07,2.89944513e-06},},{{5.78293227e-06,0},{3.09466599e-06,0},{6.08301913e-06,6.00236648e-06},{-9.46232863e-06,0},{-3.38849321e-06,-1.53611313e-06},{-1.5585505e-06,4.7521066e-06},},
  },{{{1.20088469e-05,0},{2.98908361e-06,0},{-6.25631741e-06,-5.93707573e-07},{-1.87279431e-06,0},{-1.53778176e-06,7.42937686e-07},{3.67496033e-06,1.84275117e-06},},{{1.57857473e-06,0},{4.50494411e-06,0},{7.63765494e-07,2.1212013e-06},{2.42132945e-06,0},{-2.44285555e-06,6.28893425e-07},{-8.84969133e-07,-1.02796271e-06},},{{1.79378653e-05,0},{7.90739659e-06,0},{-8.4718262e-06,3.17432832e-07},{-4.36900012e-07,0},{-4.08081812e-06,1.79960634e-06},{4.40266563e-06,1.79006723e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{1.22669987e-05,0},{-7.62451815e-06,0},{-4.4440987e-06,-4.50368119e-06},{1.41109659e-06,0},{4.57514444e-06,4.6410891e-06},{-5.21150242e-08,3.82435471e-06},},{{1.65995822e-05,0},{-1.03639233e-05,0},{-6.06847072e-06,-5.99921833e-06},{1.99559483e-06,0},{6.27738366e-06,6.20799332e-06},{6.15874204e-08,5.1396248e-06},},{{1.63394346e-05,0},{-1.00145245e-05,0},{-5.99054957e-06,-6.04699952e-06},{1.62128046e-06,0},{6.07992693e-06,6.14413609e-06},{-4.88697163e-08,5.19958918e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{1.74553441e-05,0},{-1.26268137e-05,0},{-5.34977099e-06,-1.71117907e-06},{5.88328768e-06,0},{5.77010671e-06,2.03788258e-06},{1.12413468e-06,9.50495336e-07},},{{2.86235086e-05,0},{-2.08707223e-05,0},{-8.59444798e-06,-2.74765615e-06},{1.00041485e-05,0},{9.32213107e-06,3.27993697e-06},{1.73475187e-06,1.51691794e-06},},{{2.12538156e-05,0},{-1.55946792e-05,0},{-6.30095882e-06,-1.86990802e-06},{7.62406104e-06,0},{6.89291352e-06,2.22020113e-06},{1.21241101e-06,1.02961994e-06},},
  },},{{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },},{{{{-2.35495666e-05,0},{-2.85550991e-06,0},{-9.42616962e-06,5.53508272e-06},{5.63687777e-06,0},{-3.02279796e-06,-8.78283839e-07},{-9.19135416e-07,2.00295705e-06},},{{-2.53088088e-05,0},{-5.75557407e-07,0},{-1.77071733e-05,-1.81862975e-06},{1.16896469e-05,0},{-1.12781436e-06,5.64568182e-07},{-1.26136022e-05,-5.32869685e-07},},{{-0.000109962999,0},{-3.06882543e-05,0},{-5.41615083e-05,1.5458797e-05},{2.01027003e-05,0},{-2.55925582e-05,1.29767399e-06},{-2.14368619e-05,1.08169153e-05},},
  },{{{-0.000480027339,0},{-0.00107648411,0},{0.000126256091,-0.000139282804},{-0.000241286073,0},{-0.000199078611,-0.000353847366},{0.000105604683,2.13481697e-05},},{{4.67587612e-05,0},{-0.000571755709,0},{-0.000320507318,0.000408154634},{-0.000218179868,0},{-0.000222073822,-9.29640592e-05},{-0.000282917673,-3.53189868e-05},},{{-0.000774604458,0},{-0.000585838483,0},{-0.000632026966,-0.00010759506},{0.000117996635,0},{-0.000296512605,-0.000196593469},{-0.000137780759,-0.000287315323},},
  },{{{-7.19869275e-05,0},{-6.08006176e-05,0},{-1.29900593e-06,-2.54750637e-06},{-4.26761015e-05,0},{-2.11998188e-06,-3.74857765e-06},{-3.48155048e-06,-8.89280946e-07},},{{-2.07953256e-06,0},{-1.43708597e-06,0},{5.16909339e-06,-2.40155028e-06},{-4.88710661e-07,0},{6.46829148e-06,-3.35325183e-06},{5.10301868e-07,1.58317036e-07},},{{-5.21705384e-05,0},{-4.34913e-05,0},{-1.60388839e-06,-5.24628589e-07},{-2.96875251e-05,0},{-2.61390531e-06,-9.53917282e-07},{-3.29142487e-06,-7.80343093e-07},},
  },{{{1.25959941e-05,0},{-3.69846741e-05,0},{1.31425763e-05,5.38609709e-06},{-9.94571766e-06,0},{-1.93338506e-05,2.77644181e-06},{9.7283557e-06,2.68875704e-06},},{{-1.53294155e-05,0},{-9.70366686e-06,0},{-6.87013613e-06,4.57845638e-06},{-2.97758861e-07,0},{-4.91870931e-06,2.65091732e-06},{-3.38962673e-06,4.88681446e-06},},{{-3.76351532e-05,0},{-3.3723045e-05,0},{-1.41863742e-05,1.29894815e-05},{-4.64761357e-06,0},{-1.59305089e-05,8.25671418e-06},{-5.77816954e-06,1.25746405e-05},},
  },{{{1.66094086e-05,0},{5.54581946e-06,0},{-1.26060963e-05,-1.61458686e-06},{-4.71845181e-06,0},{-4.66924967e-06,-8.49275881e-07},{8.27777317e-06,8.87680549e-07},},{{-3.87754046e-06,0},{7.42000737e-07,0},{2.94707634e-06,-7.20484164e-07},{2.37571646e-06,0},{1.4342753e-07,-1.63946169e-08},{-2.25718937e-06,9.00612103e-07},},{{-4.26990011e-05,0},{-1.15527769e-05,0},{2.25646839e-05,2.45674851e-06},{4.34833746e-06,0},{5.66127767e-06,-4.07681452e-06},{-1.27767826e-05,-4.90461068e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},}},}};
  vector<vector<vector<vector<vector<double> > > > > grad3_2_F = {{{{{-0.000279809834,0},{0.000141376149,0},{0.000108488142,8.22268315e-05},{1.03673397e-05,0},{-8.25497092e-05,-6.8786829e-05},{-1.39881571e-05,-5.60120504e-05},},{{-0.000500939718,0},{0.000240388017,0},{0.000228949627,7.46028897e-05},{3.24401061e-05,0},{-0.000164809225,-5.84378165e-05},{-8.2088363e-05,-5.38503991e-05},},{{-0.000491607196,0},{0.000222268936,0},{0.00021769754,0.00011873406},{5.17813274e-05,0},{-0.000146381367,-9.28293857e-05},{-6.23200316e-05,-8.92045389e-05},},
  },{{{-0.000151217585,0},{0.000126104413,0},{3.56195365e-05,5.89021759e-05},{-1.89988664e-05,0},{-6.25022931e-05,-5.76818703e-05},{1.46064121e-05,-2.78736593e-05},},{{0.000179990278,0},{-4.28852168e-05,0},{-5.31467689e-05,-8.35827402e-05},{-3.30970635e-05,0},{9.88550179e-06,3.29023615e-05},{-2.17201808e-05,4.8295816e-05},},{{-0.000472164021,0},{0.000152110902,0},{0.000194293377,0.000149484031},{4.96603147e-05,0},{-7.49875325e-05,-7.50362365e-05},{-3.92560553e-05,-0.000116569133},},
  },{{{7.3639226e-05,0},{1.47402137e-05,0},{4.27467065e-05,-8.21560163e-06},{-2.26663352e-05,0},{1.11224019e-05,-4.88563153e-06},{2.09874736e-05,-1.04837296e-05},},{{4.53590672e-05,0},{4.94474535e-07,0},{1.89695362e-05,-1.53740551e-05},{-1.75613558e-05,0},{2.37281497e-06,1.56936836e-06},{5.66263486e-07,-8.9584103e-06},},{{7.45704235e-05,0},{1.15701789e-05,0},{4.13728972e-05,-1.24469759e-05},{-2.39079999e-05,0},{8.63806955e-06,-3.85223908e-06},{1.7199234e-05,-1.38569935e-05},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{2.74660825e-05,0},{1.91986327e-05,0},{-6.47520478e-06,5.39925045e-06},{7.95667146e-06,0},{-6.85574541e-06,6.28777168e-06},{1.64478572e-06,-2.87666872e-07},},{{2.78630811e-05,0},{1.9766444e-05,0},{-6.29181692e-06,5.49426395e-06},{8.63073715e-06,0},{-6.77812118e-06,6.49972106e-06},{1.40825716e-06,-2.18080337e-07},},{{3.37538198e-05,0},{2.55070551e-05,0},{-5.1384724e-06,8.48798557e-06},{1.25259594e-05,0},{-7.00398599e-06,9.59950729e-06},{-3.43936901e-07,-6.07299153e-07},},
  },{{{4.40316022e-05,0},{3.62043176e-05,0},{-5.17491442e-06,8.8758807e-07},{2.38634909e-05,0},{-6.04640396e-06,1.48420383e-06},{2.96460946e-06,8.8527238e-07},},{{2.27701416e-05,0},{1.87049865e-05,0},{-3.14016636e-06,5.19818627e-07},{1.23112835e-05,0},{-3.68951752e-06,8.87137597e-07},{1.39040059e-06,6.6346289e-07},},{{5.30795201e-05,0},{4.45457933e-05,0},{-3.88775697e-06,1.90945044e-06},{3.07210443e-05,0},{-4.68864638e-06,2.78151649e-06},{2.75067279e-06,4.53064294e-07},},
  },{{{3.23882234e-05,0},{5.35177647e-05,0},{-1.88496841e-05,3.11219948e-05},{-2.56866895e-05,0},{-2.73459605e-05,-6.48361458e-06},{4.87039873e-06,-2.00522738e-05},},{{-0.000112877824,0},{6.6031236e-05,0},{5.01865919e-05,7.46858746e-06},{-5.66228814e-07,0},{-2.87372733e-05,2.04235004e-06},{-1.6987597e-05,-5.47031371e-06},},{{-6.61696441e-05,0},{1.68177952e-05,0},{5.36566505e-05,4.55201107e-05},{1.98351338e-05,0},{-8.66618331e-06,-9.31680973e-06},{-3.04913351e-05,-2.62400398e-05},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0.000131151148,0},{5.62916342e-05,0},{8.81454515e-06,-5.01909841e-05},{-8.87121181e-07,0},{1.91671731e-06,-2.29200564e-05},{-1.528277e-05,-6.43036647e-06},},{{7.13229139e-05,0},{2.81996337e-05,0},{2.82595804e-06,-2.84293899e-05},{-8.54597601e-07,0},{3.18485346e-07,-1.07715789e-05},{-1.00657534e-05,-1.46096172e-06},},{{0.000150296318,0},{6.28813317e-05,0},{9.82291538e-06,-5.94011925e-05},{-4.71050415e-07,0},{3.39417695e-07,-2.60824189e-05},{-1.99608049e-05,-9.14846007e-06},},
  },{{{-7.91055414e-05,0},{9.62440774e-05,0},{5.09359638e-05,6.053833e-05},{-6.9991644e-05,0},{-2.71442675e-05,-5.04880727e-05},{1.70669816e-05,2.68547947e-07},},{{-0.000101904542,0},{9.9149781e-05,0},{6.79055584e-05,1.58085833e-05},{-6.60885717e-05,0},{-5.31377913e-05,-1.1083008e-05},{1.3616056e-05,4.23310108e-06},},{{4.920482e-05,0},{-4.45806418e-06,0},{5.63640073e-05,3.44646626e-05},{-1.52480207e-05,0},{-3.38663161e-05,-2.53259067e-05},{1.87329468e-05,1.32696018e-06},},
  },{{{-0.000851788699,0},{0.00056061053,0},{0.000157333288,0.000287307098},{-0.0002016526,0},{-9.24104517e-05,-0.000219635499},{6.25999358e-05,-7.25030978e-05},},{{-0.000166142801,0},{0.000193508494,0},{8.8562432e-05,-2.73877831e-05},{-0.000147960198,0},{-5.4172504e-05,-1.83694456e-05},{-4.35594499e-05,-6.43992657e-05},},{{-0.000469589996,0},{0.000254296909,0},{0.000222097539,0.000211842866},{-3.41458601e-05,0},{-0.000156366564,-0.000152850787},{5.48675095e-05,-0.000111757316},},
  },{{{7.49764976e-05,0},{-1.04323849e-05,0},{2.79758217e-05,2.81524259e-05},{-8.86889803e-06,0},{-5.49605399e-06,-6.1698271e-06},{1.63839771e-07,1.86210414e-05},},{{9.13755703e-05,0},{-2.52424291e-05,0},{2.72620967e-05,3.2609582e-05},{-2.43747422e-07,0},{-5.6967733e-06,-1.16719962e-05},{-1.93091629e-06,1.9466876e-05},},{{8.8505483e-05,0},{-1.17027582e-05,0},{3.06334978e-05,3.28227878e-05},{-7.5082187e-06,0},{-3.48211926e-06,-5.79584875e-06},{-7.28328578e-07,2.11543188e-05},},
  },{{{2.57777589e-05,0},{2.37142233e-05,0},{-6.80630006e-06,7.81104303e-06},{4.93179936e-06,0},{-2.1714385e-05,-3.1077636e-06},{8.15375408e-06,-3.00826453e-06},},{{-1.20721622e-05,0},{1.03082952e-05,0},{1.47939388e-05,6.28142204e-06},{1.12263817e-05,0},{-8.81216144e-06,-4.85738239e-07},{-9.95024338e-06,-2.54790792e-06},},{{-0.000105022154,0},{9.20246658e-06,0},{7.62242256e-05,2.88955576e-05},{4.58060979e-05,0},{-4.0062288e-06,1.23276985e-07},{-4.74618763e-05,-2.85741226e-05},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{-1.56968558e-05,0},{9.79421916e-06,0},{5.62373345e-06,5.80598639e-06},{-1.8673109e-06,0},{-5.81432828e-06,-6.01190573e-06},{1.59496186e-07,-4.87716826e-06},},{{-2.07636705e-05,0},{1.30738512e-05,0},{7.62252936e-06,7.39536392e-06},{-2.68879632e-06,0},{-7.95875034e-06,-7.7224386e-06},{-2.00571132e-07,-6.36347821e-06},},{{-1.86007268e-05,0},{1.13233274e-05,0},{6.8277519e-06,6.95754728e-06},{-1.69457946e-06,0},{-6.88587221e-06,-7.02947209e-06},{1.12668771e-07,-5.99362734e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{-5.37184724e-05,0},{3.93629904e-05,0},{1.6800141e-05,5.61575728e-06},{-1.91029256e-05,0},{-1.85696955e-05,-6.72653606e-06},{-4.10009888e-06,-3.21963468e-06},},{{-0.000144491275,0},{0.000105593465,0},{4.63838963e-05,8.75879346e-06},{-5.08624468e-05,0},{-5.12200071e-05,-1.05192814e-05},{-1.23815271e-05,-4.72819624e-06},},{{-4.59745308e-05,0},{3.33289846e-05,0},{1.47469504e-05,5.41230609e-06},{-1.56085141e-05,0},{-1.61350561e-05,-6.39772583e-06},{-3.7645988e-06,-3.29870107e-06},},
  },},{{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},
  },},{{{{0.000407796774,0},{6.43700656e-05,0},{0.000219332762,-8.2271442e-05},{-0.000133720781,0},{5.89791597e-05,-1.74540182e-05},{9.08297291e-05,-7.73231922e-05},},{{-0.000384237578,0},{-0.000171024211,0},{-0.00022646772,-1.95846712e-05},{3.08799866e-05,0},{-0.000132516285,1.14262697e-05},{-0.00014984143,-1.39959831e-06},},{{0.000118754347,0},{-3.01087932e-06,0},{3.57067286e-05,-0.000112728157},{-5.58669221e-05,0},{2.65367384e-06,-9.00222115e-06},{-3.43912749e-05,-0.000102244286},},
  },{{{-0.00283777302,0},{-0.00347600924,0},{9.54415057e-05,-0.000896150739},{-0.0012503998,0},{-0.000625439179,-0.00103725455},{0.000471853883,-0.000283910881},},{{-0.00125118097,0},{-0.00191485324,0},{-0.00112535066,0.00112283373},{-0.000924501204,0},{-0.000942135762,0.000120274226},{-0.000806294671,0.000109123677},},{{-0.00416307774,0},{-0.00214057513,0},{-0.00237203168,-0.00106805095},{0.000505276544,0},{-0.00118685278,-0.000733846514},{-0.000313406757,-0.00110101092},},
  },{{{-0.000295619953,0},{-0.000255578096,0},{-2.09251019e-05,-4.52110878e-05},{-0.000186454304,0},{-2.62605618e-05,-6.21082452e-05},{8.82658718e-07,2.21534036e-06},},{{-0.00030604723,0},{-0.000263977,0},{-4.33425602e-05,-1.99870279e-05},{-0.000192685084,0},{-5.5488209e-05,-2.77459528e-05},{-1.15293244e-05,2.29186832e-07},},{{0.000290130193,0},{0.000240385407,0},{-6.12270603e-05,-2.79605602e-06},{0.000162345846,0},{-7.39179203e-05,-2.00972468e-06},{2.01735075e-05,6.09584155e-06},},
  },{{{0.000136247708,0},{-0.000183338902,0},{0.000118858934,-3.03969867e-06},{-8.09450315e-05,0},{-7.56565736e-05,-8.80065964e-06},{6.89004824e-05,-1.58561981e-05},},{{-0.000275031437,0},{-0.000240788528,0},{-0.000103104906,8.79141883e-05},{-4.3208446e-05,0},{-0.000113970144,6.09858853e-05},{-4.31495544e-05,8.44518583e-05},},{{-3.44145801e-05,0},{-3.05341207e-05,0},{-3.46409789e-05,1.32579813e-05},{3.17512528e-05,0},{-2.83884816e-05,1.5808121e-06},{-2.62539702e-05,1.61434674e-05},},
  },{{{2.83276621e-06,0},{-0.000102291938,0},{-6.78692241e-05,-6.84062984e-05},{-0.000107177059,0},{-7.44656122e-06,-7.34382198e-05},{8.54929342e-05,3.01677245e-05},},{{8.03168034e-05,0},{9.50286033e-06,0},{-3.98533041e-05,-5.08949491e-06},{-2.65888614e-05,0},{-2.03123706e-05,-4.04924489e-06},{2.68767018e-05,1.72243706e-05},},{{0.0001443074,0},{5.33790224e-05,0},{-0.000117864783,-3.14762061e-05},{-2.33951942e-05,0},{-5.03995399e-05,-1.00128162e-05},{7.50040718e-05,7.39678328e-06},},
  },{{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},},{{0,0},{0,0},{0,0},{0,0},{0,0},{0,0},}}}};
 
  
public:
  SolverUTest( ) {  }
  
};


TEST_F(SolverUTest, UniSphGrid)
{
  int grid = 200;
  vector<Pt> grids = make_uniform_sph_grid(grid, 5.7);
  
  for (int i = 0; i < grid; i++)
  {
    EXPECT_NEAR( grids[i].x(), unifSphX[i], preclim);
    EXPECT_NEAR( grids[i].y(), unifSphY[i], preclim);
    EXPECT_NEAR( grids[i].z(), unifSphZ[i], preclim);
  }
}

TEST_F(SolverUTest, IMATTestIntermediates)
{
  int pol = 5;
  PQRFile pqr(test_dir_loc + "test_zund.pqr");
  auto mol = make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                   pqr.get_atom_pts(), pqr.get_radii(),
                                   pqr.get_cg_centers(), pqr.get_cg_radii());
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  IEMatrix ieMatTest(0, mol, SHCalcTest, pol, _expcons, false, 20, true);
  ieMatTest.calc_vals(mol, SHCalcTest);
  
  ASSERT_EQ( mol->get_gdpt_expj(0).size(), 18 );
  ASSERT_EQ( mol->get_gdpt_burj(0).size(), 2  );
  ASSERT_EQ( mol->get_gdpt_expj(1).size(), 6  );
  ASSERT_EQ( mol->get_gdpt_burj(1).size(), 14 );
  ASSERT_EQ( mol->get_gdpt_expj(2).size(), 7  );
  ASSERT_EQ( mol->get_gdpt_burj(2).size(), 13 );
  ASSERT_EQ( mol->get_gdpt_expj(3).size(), 7  );
  ASSERT_EQ( mol->get_gdpt_burj(3).size(), 13 );
  
  for (int i = 0; i < mol->get_ns(); i++)
  {
    int ct = 0;
    vector<MatOfMats<cmplx>::type > Ys = ieMatTest.compute_integral(mol,
                                                                    SHCalcTest,
                                                                    i);
    for(int l=0; l<pol; l++)
      for(int s=0; s<=l; s++)
        for(int n=0; n<=l; n++)
          for(int m=0; m<=n; m++)
          {
            EXPECT_NEAR( itermIntRR[i][ct], Ys[0](l,s)(n,m).real(), preclim);
            EXPECT_NEAR( itermIntRI[i][ct], Ys[0](l,s)(n,m).imag(), preclim);
            EXPECT_NEAR( itermIntIR[i][ct], Ys[1](l,s)(n,m).real(), preclim);
            EXPECT_NEAR( itermIntII[i][ct], Ys[1](l,s)(n,m).imag(), preclim);
            ct++;
          }
  }
}

TEST_F(SolverUTest, IMATTestImatOrig)
{
  int pol = 5;
  PQRFile pqr(test_dir_loc + "test_zund.pqr");
  auto mol = make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                   pqr.get_atom_pts(), pqr.get_radii(),
                                   pqr.get_cg_centers(), pqr.get_cg_radii());
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  IEMatrix ieMatTest(0, mol, SHCalcTest, pol, _expcons, false, 20, true);
  ieMatTest.calc_vals(mol, SHCalcTest);
  
  ASSERT_EQ( mol->get_gdpt_expj(0).size(), 18 );
  ASSERT_EQ( mol->get_gdpt_burj(0).size(), 2  );
  ASSERT_EQ( mol->get_gdpt_expj(1).size(), 6  );
  ASSERT_EQ( mol->get_gdpt_burj(1).size(), 14 );
  ASSERT_EQ( mol->get_gdpt_expj(2).size(), 7  );
  ASSERT_EQ( mol->get_gdpt_burj(2).size(), 13 );
  ASSERT_EQ( mol->get_gdpt_expj(3).size(), 7  );
  ASSERT_EQ( mol->get_gdpt_burj(3).size(), 13 );
  
  for (int i = 0; i < mol->get_ns(); i++)
  {
    int ct = 0;
    for(int l=0; l<pol*pol*pol*pol; l+=10)
    {
      EXPECT_NEAR(imat[i][ct], ieMatTest.get_IE_k_ind(i,l), preclim);
      ct++;
    }
  }
}


TEST_F(SolverUTest, Efix_test)
{
  int pol = 5;
  PQRFile pqr(test_dir_loc + "test_zund.pqr");
  auto mol = make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                   pqr.get_atom_pts(), pqr.get_radii(),
                                   pqr.get_cg_centers(), pqr.get_cg_radii());
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  
  EMatrix emat(0, mol->get_ns(), pol);
  emat.calc_vals(mol, SHCalcTest, 4.0);

  for (int i = 0; i < mol->get_ns(); i++)
  {
    int ct = 0;
    for(int n=0; n<pol; n++)
    {
      for(int m=0; m <= n; m++)
      {
        EXPECT_NEAR(emat_real[i][ct],emat.get_mat_knm(i,n,m).real(),preclim);
        EXPECT_NEAR(emat_imag[i][ct],emat.get_mat_knm(i,n,m).imag(),preclim);
        ct++;
      }
    }
  }
}

TEST_F(SolverUTest, LEfix_test)
{
  int pol = 5;
  PQRFile pqr(test_dir_loc + "test_zund.pqr");
  auto mol = make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                   pqr.get_atom_pts(), pqr.get_radii(),
                                   pqr.get_cg_centers(), pqr.get_cg_radii());
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  
  LEMatrix lemt(0, mol->get_ns(), pol);
  lemt.calc_vals(mol, SHCalcTest, 4.0);

  for (int i = 0; i < mol->get_ns(); i++)
  {
    int ct = 0;
    for(int n=0; n<pol; n++)
    {
      for(int m=0; m <= n; m++)
      {
        EXPECT_NEAR(lemt_real[i][ct],lemt.get_mat_knm(i,n,m).real(),preclim);
        EXPECT_NEAR(lemt_imag[i][ct],lemt.get_mat_knm(i,n,m).imag(),preclim);
        ct++;
      }
    }
  }
}

TEST_F(SolverUTest, Hinit_test)
{
  int pol = 5;
  PQRFile pqr(test_dir_loc + "test_cged.pqr");
  auto mol = make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                   pqr.get_atom_pts(), pqr.get_radii(),
                                   pqr.get_cg_centers(), pqr.get_cg_radii());
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  
  HMatrix hmat(0, mol->get_ns(), pol, 0.21053961);
  hmat.init(mol, SHCalcTest, 4.0);
  
  for (int i = 0; i < mol->get_ns(); i++)
  {
    int ct = 0;
    for(int n=0; n<pol; n++)
    {
      for(int m=0; m <= n; m++)
      {
        EXPECT_NEAR(hmat_real[i][ct],hmat.get_mat_knm(i,n,m).real(),preclim);
        EXPECT_NEAR(hmat_imag[i][ct],hmat.get_mat_knm(i,n,m).imag(),preclim);
        ct++;
      }
    }
  }
}


TEST_F(SolverUTest, H_calc_test)
{
  int pol = 5;
  PQRFile pqr(test_dir_loc + "test_cged.pqr");
  auto mol = make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                   pqr.get_atom_pts(), pqr.get_radii(),
                                   pqr.get_cg_centers(), pqr.get_cg_radii());
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  
  auto bCons = make_shared<BesselConstants> (2*pol);
  auto bCalc = make_shared<BesselCalc>(2*pol, bCons);
  
  auto hmat1 = make_shared<HMatrix>(0, mol->get_ns(), pol, 0.21053961);
  hmat1->init(mol, SHCalcTest, 4.0);
  
  auto emat = make_shared<EMatrix> (0, mol->get_ns(), pol);
  emat->calc_vals(mol, SHCalcTest, 4.0);
  
  auto lemt = make_shared<LEMatrix> (0, mol->get_ns(), pol);
  lemt->calc_vals(mol, SHCalcTest, 4.0);
  
  auto xhMat = make_shared<XHMatrix> (0, mol->get_ns(), pol, mol, emat, lemt);
  auto fMat = make_shared<FMatrix> (0, mol->get_ns(), pol, 0.21053961);
  auto imat = make_shared<IEMatrix> (0, mol, SHCalcTest, pol, _expcons,
                                     true, 0, false);
  
  HMatrix hmat(0, mol->get_ns(), pol, 0.21053961);
  hmat.calc_vals(mol, hmat1, xhMat, fMat, imat, bCalc, 0);
  
  for (int i = 0; i < mol->get_ns(); i++)
  {
    int ct = 0;
    for(int n=0; n<pol; n++)
    {
      for(int m=0; m <= n; m++)
      {
        //TODO: make tests for H calc_vals
//        EXPECT_NEAR(hmat_real[i][ct],hmat.get_mat_knm(i,n,m).real(),preclim);
//        EXPECT_NEAR(hmat_imag[i][ct],hmat.get_mat_knm(i,n,m).imag(),preclim);
        ct++;
      }
    }
  }
}

TEST_F(SolverUTest, LHinit_test)
{
  int pol = 5;
  PQRFile pqr(test_dir_loc + "test_cged.pqr");
  auto mol = make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                   pqr.get_atom_pts(), pqr.get_radii(),
                                   pqr.get_cg_centers(), pqr.get_cg_radii());
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto BesselCons = make_shared<BesselConstants> (2*pol);
  auto BesselCal = make_shared<BesselCalc>(2*pol, BesselCons);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  
  IEMatrix ieMatTest(0, mol, SHCalcTest, pol, _expcons, true);
  shared_ptr<PreCalcSH> precalc_sh = make_shared<PreCalcSH>();
  auto hmat = make_shared<HMatrix>(0, mol->get_ns(), pol, 0.21053961);
  hmat->init(mol, SHCalcTest, 4.0);
  
  LHMatrix lhmt(0, mol->get_ns(), pol, 0.21053961);
  lhmt.init(mol, hmat, SHCalcTest, BesselCal, precalc_sh,  _expcons);
  
  for (int i = 0; i < mol->get_ns(); i++)
  {
    int ct = 0;
    vector <int> exp_pts = mol->get_gdpt_expj(i);
    for (int h = 0; h < exp_pts.size(); h++)
    {
      EXPECT_NEAR(lh_all[i][ct],lhmt.get_mat_kh(i, h),preclim);
      ct++;
    }
  }
}

TEST_F(SolverUTest, LHN_test)
{
  int pol(3), nmol(2);
  PQRFile pqr(test_dir_loc + "test_cged.pqr");
  vector<shared_ptr<BaseMolecule> > mols;
  for (int i=0; i<nmol; i++)
    mols.push_back(make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                         pqr.get_atom_pts(), pqr.get_radii(),
                                         pqr.get_cg_centers(),
                                         pqr.get_cg_radii()));
  mols[0]->translate(Pt(-9.28786458,-7.35779167,-0.15628125), 1e14);
  mols[1]->translate(Pt(10.71213542,-7.35779167,-0.15628125), 1e14);
  auto sys = make_shared<SystemSAM>(mols);
  auto cst = make_shared<Constants> ();
  cst->set_dielectric_water(80);
  cst->set_dielectric_prot(4);
  cst->set_salt_concentration(0.01);
  cst->set_temp(298.15);
  cst->set_kappa(0.0325628352);
  
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto BesselCons = make_shared<BesselConstants> (2*pol);
  auto BesselCal = make_shared<BesselCalc>(2*pol, BesselCons);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  
  // Generate surface integrals
  for (int i=0; i<nmol; i++)
    IEMatrix ieMatTest(0, sys->get_moli(i),
                       SHCalcTest, pol, _expcons, true, 0, true);
  
  string istart = test_dir_loc + "imat_test/imat.sp";
  string estart = test_dir_loc + "spol_test/test_0.00_p3.0.";
  vector<vector<string> > imat_loc(sys->get_n());
  vector<vector<vector<string > > > exp_loc(sys->get_n());
  
  // Generate surface integrals
  for (int i = 0; i < sys->get_n(); i++)
  {
    imat_loc[i].resize(sys->get_Ns_i(i));
    exp_loc[i].resize(sys->get_Ns_i(i));
    for (int k = 0; k < sys->get_Ns_i(i); k++)
    {
      exp_loc[i][k].resize(2);
      imat_loc[i][k] = istart+to_string(k) + ".out.bin";
      exp_loc[i][k][0] = estart+to_string(k) + ".H.exp";
      exp_loc[i][k][1] = estart+to_string(k) + ".F.exp";
    }
  }
  
  Solver solvTest( sys, cst, SHCalcTest, BesselCal, pol,
                  true, true, imat_loc, exp_loc);
  
  for (int i = 0; i < sys->get_n(); i++)
  {
    for (int k = 0; k < sys->get_Ns_i(i); k++)
    {
      solvTest.step(0,i,k);
    }
  }
  solvTest.update_LHN_all();
  
  int mi, si, molct = 0;
  vector<int> molind = {0,0,0,0,0,0,0, 0, 0, 0, 0,1,1,1,1,1,1, 1, 1, 1, 1, 1};
  vector<int> sphind = {0,2,3,5,7,8,9,10,11,12,13,0,1,4,5,6,8,11,12,14,15,16};
  for (int i = 0; i < sys->get_n(); i++)
  {
    int ct = 0;
    for(int n=0; n<pol; n++)
    {
      for(int m=0; m <= n; m++)
      {
        mi = molind[molct]; si = sphind[molct];
        EXPECT_NEAR(LHNre[molct][ct],
                    solvTest.getLHN_ik_nm(mi,si,n,m).real(),preclim);
        EXPECT_NEAR(LHNim[molct][ct],
                    solvTest.getLHN_ik_nm(mi,si,n,m).imag(),preclim);
        ct++;
      }
    }
    molct++;
  }
}

TEST_F(SolverUTest, spol_test)
{
  int pol = 3;
  PQRFile pqr(test_dir_loc + "test_cged.pqr");
  vector<shared_ptr<BaseMolecule> > mols;
  mols.push_back(make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                       pqr.get_atom_pts(), pqr.get_radii(),
                                       pqr.get_cg_centers(),
                                       pqr.get_cg_radii()));
  auto sys = make_shared<SystemSAM>(mols);
  auto cst = make_shared<Constants> ();
  cst->set_dielectric_water(80);
  cst->set_dielectric_prot(4);
  cst->set_salt_concentration(0.01);
  cst->set_temp(298.15);
  cst->set_kappa(0.0325628352);
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto BesselCons = make_shared<BesselConstants> (2*pol);
  auto BesselCal = make_shared<BesselCalc>(2*pol, BesselCons);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  
  // Generate surface integrals
  IEMatrix ieMatTest(0, sys->get_moli(0),
                     SHCalcTest, pol, _expcons, true, 0, true);

  Solver solvTest( sys, cst, SHCalcTest, BesselCal, pol);
  solvTest.solve(1e-13, 80);
  
  for (int i = 0; i < sys->get_Ns_i(0); i++)
  {
    int ct = 0;
    for(int n=0; n<pol; n++)
    {
      for(int m=0; m <= n; m++)
      {
        EXPECT_NEAR(spolFre[i][ct],solvTest.getF_ik_nm(0,i,n,m).real(),preclim);
        EXPECT_NEAR(spolHre[i][ct],solvTest.getH_ik_nm(0,i,n,m).real(),preclim);
        EXPECT_NEAR(spolFim[i][ct],solvTest.getF_ik_nm(0,i,n,m).imag(),preclim);
        EXPECT_NEAR(spolHim[i][ct],solvTest.getH_ik_nm(0,i,n,m).imag(),preclim);
         ct++;
      }
    }
  }
}


TEST_F(SolverUTest, mutual_pol_test)
{
  int pol(3), nmol(2);
  PQRFile pqr(test_dir_loc + "test_cged.pqr");
  vector<shared_ptr<BaseMolecule> > mols;
  for (int i=0; i<nmol; i++)
    mols.push_back(make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                         pqr.get_atom_pts(), pqr.get_radii(),
                                         pqr.get_cg_centers(),
                                         pqr.get_cg_radii()));
  mols[0]->translate(Pt(-9.28786458,-7.35779167,-0.15628125), 1e14);
  mols[1]->translate(Pt(10.71213542,-7.35779167,-0.15628125), 1e14);
  auto sys = make_shared<SystemSAM>(mols);
  auto cst = make_shared<Constants> ();
  cst->set_dielectric_water(80);
  cst->set_dielectric_prot(4);
  cst->set_salt_concentration(0.01);
  cst->set_temp(298.15);
  cst->set_kappa(0.0325628352);
  
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto BesselCons = make_shared<BesselConstants> (2*pol);
  auto BesselCal = make_shared<BesselCalc>(2*pol, BesselCons);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  
  // Generate surface integrals
  for (int i=0; i<nmol; i++)
    IEMatrix ieMatTest(0, sys->get_moli(i),
                       SHCalcTest, pol, _expcons, true, 0, true);
  
  string istart = test_dir_loc + "imat_test/imat.sp";
  string estart = test_dir_loc + "spol_test/test_0.00_p3.0.";
  vector<vector<string> > imat_loc(sys->get_n());
  vector<vector<vector<string > > > exp_loc(sys->get_n());
  
  // Generate surface integrals
  for (int i = 0; i < sys->get_n(); i++)
  {
    imat_loc[i].resize(sys->get_Ns_i(i));
    exp_loc[i].resize(sys->get_Ns_i(i));
    for (int k = 0; k < sys->get_Ns_i(i); k++)
    {
      exp_loc[i][k].resize(2);
      imat_loc[i][k] = istart+to_string(k) + ".out.bin";
      exp_loc[i][k][0] = estart+to_string(k) + ".H.exp";
      exp_loc[i][k][1] = estart+to_string(k) + ".F.exp";
    }
  }
  
  Solver solvTest( sys, cst, SHCalcTest, BesselCal, pol,
                  true, true, imat_loc, exp_loc);
  solvTest.solve(1e-15, 150);
  
  for (int i = 0; i < sys->get_n(); i++)
  {
    for (int k = 0; k < sys->get_Ns_i(i); k++)
    {
      int ct = 0;
      for(int n=0; n<pol; n++)
      {
        for(int m=0; m <= n; m++)
        {
          EXPECT_NEAR(mpolFre[i][k][ct],solvTest.getF_ik_nm(i,k,n,m).real(),
                                preclim);
          EXPECT_NEAR(mpolHre[i][k][ct],solvTest.getH_ik_nm(i,k,n,m).real(),
                                preclim);
          EXPECT_NEAR(mpolFim[i][k][ct],solvTest.getF_ik_nm(i,k,n,m).imag(),
                      preclim);
          EXPECT_NEAR(mpolHim[i][k][ct],solvTest.getH_ik_nm(i,k,n,m).imag(),
                      preclim);
          ct++;
        }
      }
    }
  }
}


TEST_F(SolverUTest, grad_pre_test)
{
  int pol(3), nmol(2);
  PQRFile pqr(test_dir_loc + "test_cged.pqr");
  vector<shared_ptr<BaseMolecule> > mols;
  for (int i=0; i<nmol; i++)
    mols.push_back(make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                         pqr.get_atom_pts(), pqr.get_radii(),
                                         pqr.get_cg_centers(),
                                         pqr.get_cg_radii()));
    mols[0]->translate(Pt(-9.28786458,-7.35779167,-0.15628125), 1e14);
    mols[1]->translate(Pt(10.71213542,-7.35779167,-0.15628125), 1e14);
    auto sys = make_shared<SystemSAM>(mols);
    auto cst = make_shared<Constants> ();
    cst->set_dielectric_water(80);
    cst->set_dielectric_prot(4);
    cst->set_salt_concentration(0.01);
    cst->set_temp(298.15);
    cst->set_kappa(0.0325628352);
    
    auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
    auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
    auto BesselCons = make_shared<BesselConstants> (2*pol);
    auto BesselCal = make_shared<BesselCalc>(2*pol, BesselCons);
    auto _expcons = make_shared<ExpansionConstants> (pol);
    
    // Generate surface integrals
    for (int i=0; i<nmol; i++)
      IEMatrix ieMatTest(0, sys->get_moli(i),
                         SHCalcTest, pol, _expcons, true, 0, true);
  
  string istart = test_dir_loc + "imat_test/imat.sp";
  string estart = test_dir_loc + "grad_dT_A_test/mpol.";
  vector<vector<string> > imat_loc(sys->get_n());
  vector<vector<vector<string > > > exp_loc(sys->get_n());
  
  // Generate surface integrals
  for (int i = 0; i < sys->get_n(); i++)
  {
    imat_loc[i].resize(sys->get_Ns_i(i));
    exp_loc[i].resize(sys->get_Ns_i(i));
    for (int k = 0; k < sys->get_Ns_i(i); k++)
    {
      exp_loc[i][k].resize(2);
      imat_loc[i][k] = istart+to_string(k)+ ".out.bin";
      exp_loc[i][k][0] = estart+to_string(i)+"."+to_string(k)+".H.exp";
      exp_loc[i][k][1] = estart+to_string(i)+"."+to_string(k)+".F.exp";
    }
  }
  
  Solver solvTest( sys, cst, SHCalcTest, BesselCal, pol,
                  true, true, imat_loc, exp_loc);
  solvTest.precalc_sh_lf_lh();
  solvTest.precalc_sh_numeric();
  GradSolver gsolvTest(sys, cst, SHCalcTest, BesselCal, solvTest.get_T(),
                       solvTest.get_all_F(), solvTest.get_all_H(),
                       solvTest.get_IE(), solvTest.get_interpol_list(),
                       solvTest.get_precalc_sh(), _expcons, pol);
  gsolvTest.pre_compute_gradT_A();
  
  for (int i = 0; i < sys->get_n(); i++)
  {
    for (int j = 0; j < sys->get_n(); j++)
    {
      for (int k = 0; k < sys->get_Ns_i(i); k++)
      {
        int ct = 0;
        for(int n=0; n<pol; n++)
        {
          for(int m=0; m <= n; m++)
          {
            EXPECT_NEAR(delTAre[i][j][k][ct][0],
                        (gsolvTest.get_gradT_A_Ik_nm(i,j,k,n,m).x()).real(),
                        preclim);
            EXPECT_NEAR(delTAre[i][j][k][ct][1],
                        (gsolvTest.get_gradT_A_Ik_nm(i,j,k,n,m).y()).real(),
                        preclim);
            EXPECT_NEAR(delTAre[i][j][k][ct][2],
                        (gsolvTest.get_gradT_A_Ik_nm(i,j,k,n,m).z()).real(),
                        preclim);
            EXPECT_NEAR(delTAim[i][j][k][ct][0],
                        (gsolvTest.get_gradT_A_Ik_nm(i,j,k,n,m).x()).imag(),
                        preclim);
            EXPECT_NEAR(delTAim[i][j][k][ct][1],
                        (gsolvTest.get_gradT_A_Ik_nm(i,j,k,n,m).y()).imag(),
                        preclim);
            EXPECT_NEAR(delTAim[i][j][k][ct][2],
                        (gsolvTest.get_gradT_A_Ik_nm(i,j,k,n,m).z()).imag(),
                        preclim);
            ct++;
          }
        }
      }
    }
  }
}


TEST_F(SolverUTest, grad_test)
{
  int pol(3), nmol(2);
  PQRFile pqr(test_dir_loc + "test_cged.pqr");
  vector<shared_ptr<BaseMolecule> > mols;
  for (int i=0; i<nmol; i++)
    mols.push_back(make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                         pqr.get_atom_pts(), pqr.get_radii(),
                                         pqr.get_cg_centers(),
                                         pqr.get_cg_radii()));
  
  mols[0]->translate(Pt(-9.28786458,-7.35779167,-0.15628125), 1e14);
  mols[1]->translate(Pt(3.71213542,-0.35779167,14.84371875), 1e14);
  auto sys = make_shared<SystemSAM>(mols);
  auto cst = make_shared<Constants> ();
  cst->set_dielectric_water(80);
  cst->set_dielectric_prot(4);
  cst->set_salt_concentration(0.01);
  cst->set_temp(298.15);
  cst->set_kappa(0.0325628352);
  
//  cout << "This is cog of i " << sys->get_cogi(0).x() << ", " << sys->get_cogi(0).y() << ", " << sys->get_cogi(0).z() << endl;
//  cout << "This is cog of i " << sys->get_cogi(1).x() << ", " << sys->get_cogi(1).y() << ", " << sys->get_cogi(1).z() << endl;
//
//  for (int j = 0; j < sys->get_n(); j++)
//  {
//    cout << "For MoleculeSAM  " << j << endl;
//    for (int k = 0; k < sys->get_Ns_i(j); k++)
//    {
//      for (int d = 0; d < 3; d++)
//        cout << sys->get_centerik(j,k).get_cart(d) << ",";
//      cout << endl;
//    }
//  }
  
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto BesselCons = make_shared<BesselConstants> (2*pol);
  auto BesselCal = make_shared<BesselCalc>(2*pol, BesselCons);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  
  // Generate surface integrals
  for (int i=0; i<nmol; i++)
    IEMatrix ieMatTest(0, sys->get_moli(i),
                       SHCalcTest, pol, _expcons, true, 0, true);
  
  string istart = test_dir_loc + "imat_test/imat.sp";
  string estart = test_dir_loc + "grad_test/mpol.";
  vector<vector<string> > imat_loc(sys->get_n());
  vector<vector<vector<string > > > exp_loc(sys->get_n());
  
  // Generate surface integrals
  for (int i = 0; i < sys->get_n(); i++)
  {
    imat_loc[i].resize(sys->get_Ns_i(i));
    exp_loc[i].resize(sys->get_Ns_i(i));
    for (int k = 0; k < sys->get_Ns_i(i); k++)
    {
      exp_loc[i][k].resize(2);
      imat_loc[i][k] = istart+to_string(k)+ ".out.bin";
      exp_loc[i][k][0] = estart+to_string(i)+"."+to_string(k)+".H.exp";
      exp_loc[i][k][1] = estart+to_string(i)+"."+to_string(k)+".F.exp";
    }
  }
  
  Solver solvTest( sys, cst, SHCalcTest, BesselCal, pol,
                  true, true, imat_loc, exp_loc);
  solvTest.precalc_sh_lf_lh();
  solvTest.precalc_sh_numeric();
  GradSolver gsolvTest(sys, cst, SHCalcTest, BesselCal, solvTest.get_T(),
                       solvTest.get_all_F(), solvTest.get_all_H(),
                       solvTest.get_IE(), solvTest.get_interpol_list(),
                       solvTest.get_precalc_sh(), _expcons, pol);
  gsolvTest.solve(1e-16, 75);
  
  for (int i = 0; i < sys->get_n(); i++) // MoleculeSAM
  {
    int kc = 0;
    for (int k = 0; k < sys->get_Ns_i(i); k++) // sphere
    {
      if (solvTest.get_interpol_list()[i][k] != 0) continue;
      for (int d = 0; d < 3; d++) // dimension
      {
        int ct = 0;
        for(int n=0; n<pol; n++)
        {
          for(int m=0; m <= n; m++)
          {
            cmplx ghval = gsolvTest.get_gradH_Ik_nm_d(i, 0, k, n, m, d);
            cmplx gfval = gsolvTest.get_gradF_Ik_nm_d(i, 0, k, n, m, d);
            if (ghval.real() != 0)
              EXPECT_NEAR(grad0_H[i][kc][d][ct][0]/ghval.real(), 1.0, preclim);
            if (ghval.imag() != 0)
              EXPECT_NEAR(grad0_H[i][kc][d][ct][1]/ghval.imag(), 1.0, preclim);
            if (gfval.real() != 0)
              EXPECT_NEAR(grad0_F[i][kc][d][ct][0]/gfval.real(), 1.0, preclim);
            if (gfval.imag() != 0)
              EXPECT_NEAR(grad0_F[i][kc][d][ct][1]/gfval.imag(), 1.0, preclim);

            ghval = gsolvTest.get_gradH_Ik_nm_d(i, 1, k, n, m, d);
            gfval = gsolvTest.get_gradF_Ik_nm_d(i, 1, k, n, m, d);
            if (ghval.real() != 0)
              EXPECT_NEAR(grad1_H[i][kc][d][ct][0]/ghval.real(), 1.0, preclim);
            if (ghval.imag() != 0)
              EXPECT_NEAR(grad1_H[i][kc][d][ct][1]/ghval.imag(), 1.0, preclim);
            if (gfval.real() != 0)
              EXPECT_NEAR(grad1_F[i][kc][d][ct][0]/gfval.real(), 1.0, preclim);
            if (gfval.imag() != 0)
              EXPECT_NEAR(grad1_F[i][kc][d][ct][1]/gfval.imag(), 1.0, preclim);

            ct++;
          }
        }
      }
      kc++;
    }
  }
}

TEST_F(SolverUTest, grad3_test)
{
  int pol(3), nmol(3);
  PQRFile pqr(test_dir_loc + "test_cged.pqr");
  vector<shared_ptr<BaseMolecule> > mols;
  for (int i=0; i<nmol; i++)
    mols.push_back(make_shared<MoleculeSAM>(0, 0, "stat", pqr.get_charges(),
                                         pqr.get_atom_pts(), pqr.get_radii(),
                                         pqr.get_cg_centers(),
                                         pqr.get_cg_radii()));
  
  mols[0]->translate(Pt(-9.28786458,-7.35779167,-0.15628125), 1e14);
  mols[1]->translate(Pt(3.71213542,-0.35779167,14.84371875), 1e14);
  mols[2]->translate(Pt(-22.28786458,-14.35779167,-15.15628125), 1e14);
  auto sys = make_shared<SystemSAM>(mols);
  auto cst = make_shared<Constants> ();
  cst->set_dielectric_water(80);
  cst->set_dielectric_prot(4);
  cst->set_salt_concentration(0.01);
  cst->set_temp(298.15);
  cst->set_kappa(0.0325628352);
  
  auto _SHConstTest = make_shared<SHCalcConstants> (2*pol);
  auto SHCalcTest = make_shared<SHCalc> (2*pol, _SHConstTest);
  auto BesselCons = make_shared<BesselConstants> (2*pol);
  auto BesselCal = make_shared<BesselCalc>(2*pol, BesselCons);
  auto _expcons = make_shared<ExpansionConstants> (pol);
  
  // Generate surface integrals
  for (int i=0; i<nmol; i++)
    IEMatrix ieMatTest(0, sys->get_moli(i),
                       SHCalcTest, pol, _expcons, true, 0, true);
  
  string istart = test_dir_loc + "imat_test/imat.sp";
  string estart = test_dir_loc + "grad_test/mpol3.";
  vector<vector<string> > imat_loc(sys->get_n());
  vector<vector<vector<string > > > exp_loc(sys->get_n());
  
  // Generate surface integrals
  for (int i = 0; i < sys->get_n(); i++)
  {
    imat_loc[i].resize(sys->get_Ns_i(i));
    exp_loc[i].resize(sys->get_Ns_i(i));
    for (int k = 0; k < sys->get_Ns_i(i); k++)
    {
      exp_loc[i][k].resize(2);
      imat_loc[i][k] = istart+to_string(k)+ ".out.bin";
      exp_loc[i][k][0] = estart+to_string(i)+"."+to_string(k)+".H.exp";
      exp_loc[i][k][1] = estart+to_string(i)+"."+to_string(k)+".F.exp";
    }
  }
  
  Solver solvTest( sys, cst, SHCalcTest, BesselCal, pol,
                  true, true, imat_loc, exp_loc);
  solvTest.precalc_sh_lf_lh();
  solvTest.precalc_sh_numeric();
  GradSolver gsolvTest(sys, cst, SHCalcTest, BesselCal, solvTest.get_T(),
                       solvTest.get_all_F(), solvTest.get_all_H(),
                       solvTest.get_IE(), solvTest.get_interpol_list(),
                       solvTest.get_precalc_sh(), _expcons, pol);
  
  gsolvTest.solve(1e-16, 75);
  for (int i = 0; i < sys->get_n(); i++) // MoleculeSAM
  {
    int kc = 0;
    for (int k = 0; k < sys->get_Ns_i(i); k++) // sphere
    {
      if (solvTest.get_interpol_list()[i][k] != 0) continue;
      for (int d = 0; d < 3; d++) // dimension
      {
        int ct = 0;
        for(int n=0; n<pol; n++)
        {
          for(int m=0; m <= n; m++)
          {
            cmplx ghval = gsolvTest.get_gradH_Ik_nm_d(i, 0, k, n, m, d);
            cmplx gfval = gsolvTest.get_gradF_Ik_nm_d(i, 0, k, n, m, d);
            if (ghval.real() != 0)
              EXPECT_NEAR(grad3_0_H[i][kc][d][ct][0]/ghval.real(),1.0,preclim);
            if (ghval.imag() != 0)
              EXPECT_NEAR(grad3_0_H[i][kc][d][ct][1]/ghval.imag(),1.0,preclim);
            if (gfval.real() != 0)
              EXPECT_NEAR(grad3_0_F[i][kc][d][ct][0]/gfval.real(),1.0,preclim);
            if (gfval.imag() != 0)
              EXPECT_NEAR(grad3_0_F[i][kc][d][ct][1]/gfval.imag(),1.0,preclim);
            
            ghval = gsolvTest.get_gradH_Ik_nm_d(i, 1, k, n, m, d);
            gfval = gsolvTest.get_gradF_Ik_nm_d(i, 1, k, n, m, d);
            if (ghval.real() != 0)
              EXPECT_NEAR(grad3_1_H[i][kc][d][ct][0]/ghval.real(),1.0,preclim);
            if (ghval.imag() != 0)
              EXPECT_NEAR(grad3_1_H[i][kc][d][ct][1]/ghval.imag(),1.0,preclim);
            if (gfval.real() != 0)
              EXPECT_NEAR(grad3_1_F[i][kc][d][ct][0]/gfval.real(),1.0,preclim);
            if (gfval.imag() != 0)
              EXPECT_NEAR(grad3_1_F[i][kc][d][ct][1]/gfval.imag(),1.0,preclim);
            
            ghval = gsolvTest.get_gradH_Ik_nm_d(i, 2, k, n, m, d);
            gfval = gsolvTest.get_gradF_Ik_nm_d(i, 2, k, n, m, d);
            if (ghval.real() != 0)
              EXPECT_NEAR(grad3_2_H[i][kc][d][ct][0]/ghval.real(),1.0,preclim);
            if (ghval.imag() != 0)
              EXPECT_NEAR(grad3_2_H[i][kc][d][ct][1]/ghval.imag(),1.0,preclim);
            if (gfval.real() != 0)
              EXPECT_NEAR(grad3_2_F[i][kc][d][ct][0]/gfval.real(),1.0,preclim);
            if (gfval.imag() != 0)
              EXPECT_NEAR(grad3_2_F[i][kc][d][ct][1]/gfval.imag(),1.0,preclim);
            ct++;
          }
        }
      }
      kc++;
    }
  }
}


#endif /* SolverUnitTest_h */
